全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1579 2
2010-01-13
最近对附件所示的数据集进行运算。程序如下

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

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

扫码加我 拉你入群

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

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

全部回复
2010-1-13 12:40:41
don't put log() in the condition statement!
二维码

扫码加我 拉你入群

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

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

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;
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群