楼主: oneoneagain
2253 3

急求,怎样根据条件增加行数据 [推广有奖]

  • 3关注
  • 0粉丝

硕士生

7%

还不是VIP/贵宾

-

威望
0
论坛币
722 个
通用积分
0.0259
学术水平
0 点
热心指数
3 点
信用等级
0 点
经验
210 点
帖子
63
精华
0
在线时间
202 小时
注册时间
2011-3-29
最后登录
2020-8-26

楼主
oneoneagain 发表于 2013-8-7 10:46:03 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
现在有一个数据集,其数据为下显示:name $ nbr test1 :yymmdd10. test2: yymmdd10.

张三 1 2012-03-03 2012-04-02
张三 2 2012-04-03 2012-05-02
张三 3 2012-05-03 2012-06-02
张三 4 2012-06-03 2012-07-02
张三 5 2012-07-03 2012-08-02
张三 6 2012-08-03 2012-09-02
李四 1 2012-03-07 2012-04-06
李四 2 2012-04-07 2012-05-06
李四 3 2012-05-07 2012-06-06
李四 4 2012-06-07 2012-07-06
李四 5 2012-07-07 2012-08-06
王五 2 2012-04-10 2012-05-09
王五 3 2012-05-10 2012-06-09
王五 4 2012-06-10 2012-07-09
王五 5 2012-07-10 2012-08-09
赵六 1 2012-03-15 2012-04-14
赵六 2 2012-04-15 2012-05-14
赵六 4 2012-06-15 2012-07-14
赵六 6 2012-08-15 2012-09-14

现在想根据nbr来增加行数据,在以name分组的情况下,如果nbr中缺少1-6中的任意一个,则相应的补上,预期的数据集为:

name $ nbr test1 :yymmdd10. test2: yymmdd10.
张三   1   2012-03-03       2012-04-02
张三   2   2012-04-03       2012-05-02
张三   3   2012-05-03       2012-06-02
张三   4   2012-06-03       2012-07-02
张三   5   2012-07-03       2012-08-02
张三   6   2012-08-03       2012-09-02
李四   1   2012-03-07       2012-04-06
李四   2   2012-04-07       2012-05-06
李四   3   2012-05-07       2012-06-06
李四   4   2012-06-07       2012-07-06
李四   5   2012-07-07       2012-08-06
李四   6   2012-08-07       2012-09-06
王五   1   2012-03-10       2012-04-09
王五   2   2012-04-10       2012-05-09
王五   3   2012-05-10       2012-06-09
王五   4   2012-06-10       2012-07-09
王五   5   2012-07-10       2012-08-09
王五   6   2012-08-10       2012-09-09
赵六   1   2012-03-15       2012-04-14
赵六   2   2012-04-15       2012-05-14
赵六   3   2012-05-15       2012-06-14
赵六   4   2012-06-15       2012-07-14
赵六   5   2012-07-15       2012-08-14
赵六   6   2012-08-15       2012-09-14

备注:红色标注的为新加的数据。
二维码

扫码加我 拉你入群

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

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

关键词:test name Est nbr 数据集

沙发
playmore 发表于 2013-8-7 11:12:41
针对你的特殊问题,我写了个特殊的解法
如果你要填补的日期间隔或者其他什么设置有变的话,可能就用不了了

data have;
input name $ nbr test1 :yymmdd10. test2: yymmdd10.;
format test1 yymmdd10.;
format test2 yymmdd10.;
datalines;
张三 1 2012-03-03 2012-04-02
张三 2 2012-04-03 2012-05-02
张三 3 2012-05-03 2012-06-02
张三 4 2012-06-03 2012-07-02
张三 5 2012-07-03 2012-08-02
张三 6 2012-08-03 2012-09-02
李四 1 2012-03-07 2012-04-06
李四 2 2012-04-07 2012-05-06
李四 3 2012-05-07 2012-06-06
李四 4 2012-06-07 2012-07-06
李四 5 2012-07-07 2012-08-06
王五 2 2012-04-10 2012-05-09
王五 3 2012-05-10 2012-06-09
王五 4 2012-06-10 2012-07-09
王五 5 2012-07-10 2012-08-09
赵六 1 2012-03-15 2012-04-14
赵六 2 2012-04-15 2012-05-14
赵六 4 2012-06-15 2012-07-14
赵六 6 2012-08-15 2012-09-14
;
run;

proc sort data=have;
by name nbr;
run;

data base;
set have;
by name nbr;
if first.name;
run;

data want(drop=i);
set base;
do i=1 to 6;
        if nbr eq i then output;
        else do;
                test1=INTNX('MONTH',test1,i-nbr,'sameday');
                test2=INTNX('MONTH',test2,i-nbr,'sameday');
                nbr=i;
                output;
        end;
end;
run;

已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Imasasor + 40 + 40 + 1 + 2 + 1 分析的有道理
oneoneagain + 1 + 1 + 1 谢谢

总评分: 经验 + 40  论坛币 + 40  学术水平 + 2  热心指数 + 3  信用等级 + 2   查看全部评分

playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

藤椅
oneoneagain 发表于 2013-8-7 11:22:41
恩,日期的补充规则是我说的不完全,应该是按照前后的日期推导出来的,并不是我举例的这么简单,谢谢你这么热心。

板凳
lqwoailuo 发表于 2013-12-6 10:53:47

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

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