全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5718 20
2009-01-03

原数据:

姓名                   日期                收入

AAA                    200803           5300

AAA                    200806           5500

AAA                    200809           5800

AAA                    2008012          5700

BBB                   200806             6400

BBB                   2008012             6900

现在假设对AAA来说4,5月收入和3月的一样,7,8月收入和6月的一样,10,11月收入和9月的一样,对BBB来说,7,8,9,10,11月的收入和6月的一样。

如何把这些缺失的月份和收入加进去?最后生成:

姓名                   日期                收入

AAA                    200803           5300

AAA                    200804           5300

AAA                    200805           5300

AAA                    200806           5500

AAA                    200807           5500

AAA                    200808           5500

AAA                    200809           5800

AAA                    200810           5800

AAA                    200811           5800

AAA                    2008012          5700

BBB                   200806             6400

BBB                   200806             6400

BBB                   200806             6400

BBB                   2008012             6900

二维码

扫码加我 拉你入群

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

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

全部回复
2009-1-4 20:51:00

自己顶一下!望高手指点一下

二维码

扫码加我 拉你入群

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

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

2009-1-5 10:10:00

proc sql;

insert into _datatable_

values()

.......;

run;

proc sort data=_datatable_;

by 姓名 日期 ;

run;

二维码

扫码加我 拉你入群

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

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

2009-1-5 16:04:00

data test;
 infile datalines missover;
 input name : $3. date : 6. income : 4.;
datalines;
AAA 200803 5300
AAA 200806 5500
AAA 200809 5800
AAA 200812 5700
BBB 200806 6400
BBB 200812 6900
;
run;

proc sort data=test out=testsort;
 by name date;
run;

data result;
 set testsort;
 by name date;
 retain ic1 0 dt1 0;
 if first.name then
 do;
  ic1=income;
  dt1=date;
  output;
 end;
 if not first.name then
 do;
  dt2=date;
  ic2=income;
  output;
  do i=dt1 +1 to dt2-1;
   income=ic1;
   date=i;
   output;
  end;
  ic1=ic2;
  dt1=dt2;
 end;
 keep name date income;
run;

proc sort data=result;
 by name date;
run;

proc print;
run;

二维码

扫码加我 拉你入群

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

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

2009-1-5 17:17:00

好复杂。。。

二维码

扫码加我 拉你入群

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

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

2009-1-5 21:39:00

非常感谢楼上各位的指点。

四楼zhitler的方法最为实用,佩服!

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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