全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2199 4
2013-03-20
例子如下:
Code            Date                   Market_Cap
100000        2005-06-30          1000
100000        2005-12-31          1200
100000        2006-06-30          .
100000        2006-12-31          .
100000        2007-06-30          1400
100003        2006-06-30          2000
100003        2006-12-31          2200
100003        2007-06-30          .

希望将几个缺值补全,结果如下:
Code            Date                   Market_Cap
100000        2005-06-30          1000
100000        2005-12-31          1200
100000        2006-06-30          1200
100000        2006-12-31          1200

100000        2007-06-30          1400
100003        2006-06-30          2000
100003        2006-12-31          2200
100003        2007-06-30          2200

盼解答,十分感谢!!
二维码

扫码加我 拉你入群

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

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

全部回复
2013-3-20 10:52:54
好像可以用插值法补上
二维码

扫码加我 拉你入群

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

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

2013-3-20 10:58:16
shajia2008 发表于 2013-3-20 10:52
好像可以用插值法补上
能说的再详细点吗?谢谢!!
二维码

扫码加我 拉你入群

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

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

2013-3-20 11:02:40
data have;
infile cards missover;
input code date: yymmdd10. market_gap;
format date yymmdd10.;
cards;
100000        2005-06-30          1000
100000        2005-12-31          1200
100000        2006-06-30          .
100000        2006-12-31          .
100000        2007-06-30          1400
100003        2006-06-30          2000
100003        2006-12-31          2200
100003        2007-06-30          .
;
run;

data want;
   set have;
   by code;
   retain mediate;
   if first.code then mediate=market_gap;
     if market_gap^=. then mediate=market_gap;
           else market_gap=mediate;
    run;
   proc print;
   run;
二维码

扫码加我 拉你入群

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

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

2013-3-20 11:20:15
farmman60 发表于 2013-3-20 11:02
data have;
infile cards missover;
input code date: yymmdd10. market_gap;
啊,懂了,我还是对retain的理解不够到位,总想着用lag做,多谢大人~
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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