全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2175 11
2012-08-31
Company      year           VAR1
001               2001           .
001               2001           .
001               2001           25
001               2001           .
001               2001           25
002               2001           27
002               2001           .
002               2001           27
002               2001           .
002               2001           27
002               2002           23
002               2002           .
002               2002           .
002               2002           .
002               2002           23

有不同的公司,每年都有一个特定的VAR1和该公司对应, 但是如上数据,VAR1有些是缺失的。不知道怎么把这个缺失值用该年的特定值填上? 比如001,2001年的,需要全部填上25. 谢谢大家了!
二维码

扫码加我 拉你入群

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

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

全部回复
2012-8-31 13:50:01
不知道有没办法可以解决呢?谢谢大家!
二维码

扫码加我 拉你入群

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

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

2012-8-31 13:55:57
data b;
set a;
by company;
if var1 ne . then call symput('var',var1);
if var1=. then var1=symget('var');
run;
二维码

扫码加我 拉你入群

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

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

2012-8-31 14:03:28
stormhoof 发表于 2012-8-31 13:55
data b;
set a;
by company;
谢谢LS,只是这个run出来不对啊。。。
二维码

扫码加我 拉你入群

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

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

2012-8-31 14:20:04
data a1 a2;
set a;
if var1 ne . then output a1;
else if var1 =. then output a2;
run;
data b;
merge a1(in=x) a2(in=y drop=var1);
by company year;
if y then output;
run;
data final;
set a1 b;
by company year;
run;
这个方法比较笨,但应该是正确的
二维码

扫码加我 拉你入群

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

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

2012-8-31 14:37:38
proc sort data=a;
by company year descending var1;
run;

data b;
set a;
if var1 ne . then call symput('var',var1);
if var1=. then var1=symget('var');
by company year;
run;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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