楼主: rwalker
2657 7

lag函数释义 [推广有奖]

  • 0关注
  • 0粉丝

已卖:391份资源

讲师

6%

还不是VIP/贵宾

-

威望
0
论坛币
363 个
通用积分
7.1800
学术水平
4 点
热心指数
8 点
信用等级
5 点
经验
2451 点
帖子
118
精华
0
在线时间
531 小时
注册时间
2009-3-13
最后登录
2025-12-17

楼主
rwalker 发表于 2013-8-16 11:42:45 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
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);这个语句的结果。

二维码

扫码加我 拉你入群

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

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

关键词:lag missing Input Lines Miss

沙发
chenys625 发表于 2013-8-16 11:48:22
lag是在条件下做的。可以用retain,比较好吧。

藤椅
yongyitian 发表于 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;

板凳
heperwong 在职认证  发表于 2013-8-16 13:25:32
楼主没有理解lag函数的用法。好好理解一下lag函数吧。。

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

地板
yongyitian 发表于 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;

7
chenys625 发表于 2013-8-19 10:27:16
yongyitian 发表于 2013-8-17 08:11
说的是不是要用 retain to fill the missing?
确实很好.
data c ;
     set a;
     retain code_r;
     miss = missing(code);
     if miss = 0 then code = code_r;
     else then code_r = code;
    drop code_r miss;
run;
这样试试

8
菜花的秘密 发表于 2016-10-23 16:26:41
确实用retain更为简单!

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

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