全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2594 7
2013-08-16
data a;
input code y;
datalines;
1 12
. 13
. 14
1 15
2 12
. 15
2 16
3 17
. 18
3 19
;
run;
data b;
set a;
miss=missing(code);
if miss=0 then w=code;
if miss=1 then w=lag1(code);
run;
为什么最后我得到的结果没有得到if miss=1 then w=lag1(code);这个语句的结果。

二维码

扫码加我 拉你入群

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

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

全部回复
2013-8-16 11:48:22
lag是在条件下做的。可以用retain,比较好吧。
二维码

扫码加我 拉你入群

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

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

2013-8-16 12:37:01
if 语句中的 lag 是从满足 if 条件的观测序列中取lag值。 如下面程序中w1的结果所示。
第一个lag语句 lag_code = lag(code); 是从所有的观测序列中取lag值。

data b;
   set a;
   lag_code = lag(code);
   miss=missing(code);         
   if miss=0 then w=code;      
   if miss=1 then do;
      w = lag_code;   
     w1 = lag(y);
    end;
run;
二维码

扫码加我 拉你入群

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

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

2013-8-16 13:25:32
楼主没有理解lag函数的用法。好好理解一下lag函数吧。。
二维码

扫码加我 拉你入群

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

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

2013-8-16 13:51:31
yongyitian 发表于 2013-8-16 12:37
if 语句中的 lag 是从满足 if 条件的观测序列中取lag值。 如下面程序中w1的结果所示。
第一个lag语句 lag_ ...
用retain不是更好么?
二维码

扫码加我 拉你入群

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

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

2013-8-17 08:11:38
chenys625 发表于 2013-8-16 13:51
用retain不是更好么?
说的是不是要用 retain to fill the missing?
确实很好.

data c (rename=(w=code));
    set a;
    retain w;
    miss = missing(code);
    if miss = 0 then w = code;
*  if miss = 1 then w = lag(code);
    drop code miss;
run;
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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