SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 668|回复: 3
打印 上一主题 下一主题

数据集拆分

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-9-2 16:37:27 | 只看该作者

数据集拆分

呵呵!又有问题请教大家了。我想根据时间(date)对数据集进行拆分,自己根据自己的瞎理解写了下面的程序:
data sasuser.logone sasuser.logtwo sasuser.logthree;
set sasuser.log1;
if date<080725 then
   output sasuser.logone;
else if  date>080731 then
   output sasuser.logthree;
else output sasuser.logtwo;
run;
结果是有了logone.logtwo,logthree的数据集。可是等于是把log1复制到logone里了,其余两个数据集是空的。
请教各位应该怎么改
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-9-2 17:26:53 | 只看该作者

Re: 数据集拆分

变量date是SAS的日期值吗?
如果是,在if表达式中要写成日期常量'25jul08'd
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2009-9-2 21:28:24 | 只看该作者

Re: 数据集拆分

应该如2楼说的,是你的date的问题。因为如果你的date是080725这种格式的话,不可能是数值型的。数值型不会以0开头。
你可以date1 = date*1;
然后根据date1来判断。
那就是date1>80725 ...
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2009-9-2 23:05:17 | 只看该作者

Re: 数据集拆分

[quote:1lsqh3dt]等于是把log1复制到logone里了,其余两个数据集是空的。[/quote:1lsqh3dt]

原因是080725 这个数值对应的date = Dec 15,2108。这是个久远的未来。我看不到这一天,估计你也玄。想必你的数据不是胡编乱造的,还是发生在现实里, 所以只好一股脑都去logone了。不过非常有意思,log1 不就是logone吗?

解决方法就是hopewell建议的。

[code:1lsqh3dt]if date <'25jul08'd;
or
if date <input('080725', yymmdd6.);[/code:1lsqh3dt]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-5 23:08 , Processed in 0.081649 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表