全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4119 11
2010-12-23
ID              YEAR code1
00109        1996  5013  
00109        1997  5013  
00109        1998  5013  
00109       1999    .   
00109       2000    .   
00109       2001    .   
00109       2002  6500  
00109       2003    .   
00109       2004    .   
00109       2005    .   
00109       2006    .   
00109       2007    .   
00109       2008    .   
00109       2009    .  
00108       1996    .
00108       1997    5000
00108       1998    .
00108       1999    .


需要把00109的1999到2001年的ID用5013补上(就是缺失值上面的数据,前提是同一个ID,不是的话就让它空着);
2003到2009的用6500补上;

对于00108,因为第一个是缺失的,没法补,1998-1999年的用1997年的5000补上。


数据结构大概如上,不知道有没什么比较好的方法可以补上?

先谢过了。
二维码

扫码加我 拉你入群

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

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

全部回复
2010-12-23 11:15:22
发现我等级成博士生了~~~
二维码

扫码加我 拉你入群

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

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

2010-12-23 14:22:46
利用 by statement 结合 first.varname 变量:
复制代码
二维码

扫码加我 拉你入群

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

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

2010-12-24 02:25:09
3# elek.me

感谢elek,it works well:)
二维码

扫码加我 拉你入群

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

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

2010-12-24 09:15:56
不客气。

对于00108,因为第一个是缺失的,没法补,

你的这一条,如果不限定,或者说,00108对应的1996需要补成5000的话,其实就是相当于按一个step function的方式来补充缺失值了,这样的话,倒是有更方便的方法,用proc expand,SAS/ETS里一个非常实用的过程步,方法如下:
复制代码
二维码

扫码加我 拉你入群

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

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

2010-12-24 13:11:31
elek.me 发表于 2010-12-24 09:15
不客气。

对于00108,因为第一个是缺失的,没法补,

你的这一条,如果不限定,或者说,00108对应的1996需要补成5000的话,其实就是相当于按一个step function的方式来补充缺失值了,这样的话,倒是有更方便的方法,用proc expand,SAS/ETS里一个非常实用的过程步,方法如下:
复制代码
原来expand 那么实用,学习了!!!如果碰到其他数据特征,用这个expand正好。
谢谢:)
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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