请选择 进入手机版 | 继续访问电脑版
楼主: xulimei1986
1229 4

[问答] 如何根据条件插入记录 [推广有奖]

  • 3关注
  • 0粉丝

博士生

68%

还不是VIP/贵宾

-

威望
0
论坛币
41 个
通用积分
0
学术水平
3 点
热心指数
8 点
信用等级
3 点
经验
22590 点
帖子
138
精华
0
在线时间
439 小时
注册时间
2012-3-20
最后登录
2019-5-11

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
原始数据如下:
月份 开始时间 结束日期 总人数 状态1 购买人数
12月 2014/10/11 2014/11/10 1000 A 500
12月 2014/10/11 2014/11/10 1000 B 500
12月 2014/10/11 2014/11/10 1000 C 500
1月 2014/11/10 2014/12/10 800 A 300
1月 2014/11/10 2014/12/10 800 C 300
2月 2014/12/11 2015/1/10 1000 A 500
2月 2015/1/11 2015/2/10 1000 B 500
2月 2015/1/11 2015/2/10 1000 C 500

问题描述:
每月状态1应该有A\B\C三个值,如果发现哪个月少了“状态1=B”的情况,则在当月数据中插入一条记录(插入的记录购买人数=0,其他的与当月其他记录一致),期望结果如下,求大神指教:
月份 开始时间 结束日期 总人数 状态1 购买人数
12月 2014/10/11 2014/11/10 1000 A 500
12月 2014/10/11 2014/11/10 1000 B 500
12月 2014/10/11 2014/11/10 1000 C 500
1月 2014/11/10 2014/12/10 800 A 300
1月 2014/11/10 2014/12/10 800 B 0
1月 2014/11/10 2014/12/10 800 C 300
2月 2014/12/11 2015/1/10 1000 A 500
2月 2015/1/11 2015/2/10 1000 B 500
2月 2015/1/11 2015/2/10 1000 C 500

二维码

扫码加我 拉你入群

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

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

关键词:原始数据 总人数 月数据 记录

家家有本难念的经,计较的少一点,会和睦许多!!
补充下,插入的记录,状态1=B

使用道具

sushe1527 发表于 2015-2-6 21:42:41 |显示全部楼层 |坛友微信交流群
  1. data a;
  2. input a$ date1 date2 b c$ d;
  3. informat date1 yymmdd10. date2 yymmdd10.;
  4. format date1 yymmdd10. date2 yymmdd10.;
  5. cards;
  6. 12月 2014/10/11 2014/11/10 1000 A 500
  7. 12月 2014/10/11 2014/11/10 1000 B 500
  8. 12月 2014/10/11 2014/11/10 1000 C 500
  9. 1月 2014/11/10 2014/12/10 800 A 300
  10. 1月 2014/11/10 2014/12/10 800 C 300
  11. 2月 2015/1/11 2015/2/10 1000 A 500
  12. 2月 2015/1/11 2015/2/10 1000 B 500
  13. 2月 2015/1/11 2015/2/10 1000 C 500
  14. ;run;
  15. proc sort data=a(drop=c) out=b nodupkey;by a date1 date2 b d;run;
  16. data c;
  17. set b;
  18. c="A"; output;c="B"; output; c="C"; output;
  19. run;
复制代码

使用道具

sushe1527 发表于 2015-2-6 21:42
有一点点小问题,当C="B"的时候d=0

使用道具

teqel 发表于 2015-2-9 13:21:30 |显示全部楼层 |坛友微信交流群
sushe1527 发表于 2015-2-6 21:42
改一下
proc sort data=a out=b nodupkey;
by a c;
run;

data c;
set b;
if lag(c)="A" and c^="B" then do;
c="B"; d=0; output;
end;
output;
run;

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-3-29 14:09