楼主: mirandaling
2248 4

[问答] 如何将缺值数据替换为上一个有值的数据 [推广有奖]

  • 0关注
  • 0粉丝

小学生

64%

还不是VIP/贵宾

-

威望
0
论坛币
1076 个
通用积分
0.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
155 点
帖子
7
精华
0
在线时间
7 小时
注册时间
2010-3-16
最后登录
2024-7-9

楼主
mirandaling 发表于 2013-3-20 10:40:30 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
例子如下:
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

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

扫码加我 拉你入群

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

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

关键词:market marke code date Mark 如何

回帖推荐

farmman60 发表于4楼  查看完整内容

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 ...

沙发
shajia2008 在职认证  发表于 2013-3-20 10:52:54
好像可以用插值法补上
知善恶,致良知

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

板凳
farmman60 发表于 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;

报纸
mirandaling 发表于 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做,多谢大人~

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

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