楼主: lanzegong
1554 2

怪事!SAS是不是有BUG?哪位同学能解决? [推广有奖]

  • 0关注
  • 0粉丝

小学生

50%

还不是VIP/贵宾

-

威望
0
论坛币
654 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
325 点
帖子
0
精华
0
在线时间
17 小时
注册时间
2006-11-28
最后登录
2017-6-13

楼主
lanzegong 发表于 2010-1-13 12:18:22 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
最近对附件所示的数据集进行运算。程序如下

data tmp3;
set tmp4;
if cusip=lag(cusip) then  tt=shrout/lag(shrout);
run;

得到的结果却是:
RDATECUSIPshrouttt
2005123100206R103913
2006033100206R103885
2006063000206R1038881.000772
2006093000206R1038840.998971
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:bug Data date Then Out 同学 SAS 解决 bug 怪事

沙发
xjg 发表于 2010-1-13 12:40:41
don't put log() in the condition statement!

藤椅
xiaosanmao 发表于 2010-1-13 14:11:01
if cusip=lag(cusip) then  tt=shrout/lag(shrout);

lag使用一次一般产生一行缺失值,用来lag(shrout)的话tt就有一个缺失值 前面的lag(cusip)本来就产生一行
所以tt一共是两行缺失值,你可以这样写
data tmp3;
set tmp4;
lag=lag(shrout);
if cusip=lag(cusip) then  tt=shrout/lag;
run;

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 06:42