楼主: 白塔湖123
4317 3

[问答] SAS里有开始日期和结束日期,如何生成中间日期?急求! [推广有奖]

  • 2关注
  • 6粉丝

副教授

98%

还不是VIP/贵宾

-

威望
0
论坛币
22348 个
通用积分
3.8531
学术水平
3 点
热心指数
20 点
信用等级
3 点
经验
5264 点
帖子
284
精华
0
在线时间
1668 小时
注册时间
2012-9-20
最后登录
2024-4-25

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
日期.png

请问SAS里面有开始日期和结束日期,如何生成中间日期?

如图所示,我的数据是这个样子,有开始日期和结束日期,我希望能够扩充中间的日期。

比如startdate为201303,enddate为201403这行  右边还有很多其他变量,我希望能够重新生成一个数据集,根据startdate=201303, enddate=201403这行可以生成很多行,
date分别是201303, 201304,201305,201306........201401,201402,201403这些行,而右边变量是不变的跟“startdate=201303, enddate=201403”这行的右边保持一样。
以此类推,图片中下一行也可以在新的数据集中生成很多很多行。
如果startdate=enddate=201403,那么新数据集中就只放date=201403这一行就行了

请问大家有什么方法可以实现吗? 非常非常感谢!!!

如果有需要,我可以支付论坛币~
二维码

扫码加我 拉你入群

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

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


回帖推荐

沙发
l1i2n3i4n5g 在职认证  发表于 2017-12-28 09:32:26 |只看作者 |坛友微信交流群
  1. data test;
  2. input startdate $
  3.       enddate $
  4.       var;
  5. cards;
  6. 201303 201403 1
  7. 201403 201403 2
  8. 201403 201512 3
  9. ;
  10. run;


  11. data want;
  12.    format startdate1 enddate1 date yymmn6.;/*相关变量显示为yyyymm日期格式*/
  13.    set test;
  14.    startdate1=input(startdate,yymmn6.);/*假设原数据为字符型,转为日期型*/
  15.    enddate1=input(enddate,yymmn6.);
  16.    months=intck('month',startdate1,enddate1);/*计算startdate和enddate间隔几个月*/
  17.    do i=0 to months;/*i=1时date=startdate,i=months时date=enddate,依次循环*/
  18.       date=intnx('month',startdate1,i);
  19.       output;
  20.    end;
  21.    drop startdate: enddate: months i;
  22. run;
复制代码

使用道具

藤椅
白塔湖123 发表于 2017-12-28 16:09:23 |只看作者 |坛友微信交流群
l1i2n3i4n5g 发表于 2017-12-28 09:32
太谢谢啦,非常有用!

使用道具

板凳
superguy333 发表于 2017-12-28 19:34:54 |只看作者 |坛友微信交流群
不错!

使用道具

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

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

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

GMT+8, 2024-4-27 10:20