楼主: lixqji
6389 24

[原创博文] 在线等:如何补齐日期缺省值? [推广有奖]

  • 3关注
  • 0粉丝

已卖:84份资源

讲师

10%

还不是VIP/贵宾

-

威望
0
论坛币
269 个
通用积分
0.4800
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
5286 点
帖子
248
精华
0
在线时间
383 小时
注册时间
2009-5-12
最后登录
2022-3-26

楼主
lixqji 发表于 2012-2-21 13:02:14 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
  数据集:
data test;
format no 1.0;
format dt yymmdd10.;
input no dt :yymmdd10. ret @@;
cards;
    1 2001-01-01 0.02
    1 2001-03-01 0.03
    1 2001-04-01 0.02
    221 2001-01-01 0.02
    221 2001-02-01 0.03
    221 2001-04-01 0.02
    333333 2001-02-01 0.02
    333333 2001-03-01 0.03
    333333 2001-04-01 0.02
    ;
run;

希望得到一下结果
    1 2001-01-01 0.02
    1 2001-02-01 0
    1 2001-03-01 0.02
    1 2001-04-01 0.02
    221 2001-01-01 0.02
    221 2001-02-01 0.03
    221 2001-03-01 0
    221 2001-04-01 0.03
    33333 2001-01-01 0
    33333 2001-02-01 0.02
    33333 2001-03-01 0.03
    33333 2001-04-01 0.02

即补齐日期缺省值,并对no、ret等进行填充,其中ret为0.
不知道有没有好的方法?在线等


补充思路:可否按照cd的顺序进行检查,看‘2001-01-01’至‘2001-04-01’中缺了哪个,然后补全。不知道怎么编程?
二维码

扫码加我 拉你入群

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

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

关键词:缺省值 在线等 format FORMA cards 在线 如何

回帖推荐

zhangzachary 发表于3楼  查看完整内容

Let me try a hardcode~~

本帖被以下文库推荐

沙发
lixqji 发表于 2012-2-21 15:45:37

藤椅
zhangzachary 发表于 2012-2-21 15:52:04
Let me try a hardcode~~
  1. data a;
  2. format dt yymmdd10.;
  3. do no=1 to 3;
  4.   do dt="01jan2001"d,"01feb2001"d,"01mar2001"d,"01apr2001"d;
  5.     ret=0;
  6.     output;
  7.   end;
  8. end;
  9. run;

  10. proc append base=test data=a;
  11. run;

  12. proc sort data=test nodupkey;
  13. by no dt;
  14. run;
复制代码
已有 1 人评分热心指数 收起 理由
lixqji + 1 热心帮助其他会员

总评分: 热心指数 + 1   查看全部评分

寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

板凳
lixqji 发表于 2012-2-21 19:51:32
zhangzachary 发表于 2012-2-21 15:52
Let me try a hardcode~~
谢谢,这是解决这个问题的一个方法。可是,当stkcd的号码很多时候,特别还是不连续的时候,比如000001、600098等,不可能用do 产生,且日期持续也较长,需要用循环语句产生2001-01-01,2001-02-01等。于是变得复杂了。anyway,

报纸
lixqji 发表于 2012-2-21 20:03:09
zhangzachary 发表于 2012-2-21 15:52
Let me try a hardcode~~
问题变复杂了,请见题中修改

地板
weberxu 发表于 2012-2-21 20:04:05
你如果是想要一个连续产生的变量时,你可以用DO循环先产生。像楼上提的解法一样,其实他都给出答案了,只是缺了一步。
你想要的结果,通过一个merge就可以实现了。将两个数据集合并,你应该会把。具体的代码我就不写了,这样可以实现的。你试试吧。

7
weberxu 发表于 2012-2-21 20:04:42
我的回复为什么需要审核?

8
weberxu 发表于 2012-2-21 20:07:06
上边提的解决方案是小的观测可以实现的,向作者问的大的观测,你可以先用do循环,产生一个数据集,然后在和你的数据集合并,用merge语句,in控制输出。这点楼主应该会做的。具体的代码,我就不写了,你试试吧。

9
lixqji 发表于 2012-2-21 20:07:37
weberxu 发表于 2012-2-21 20:04
我的回复为什么需要审核?
啊?!亟待审核通过,谁在审核{:3_41:}

10
weberxu 发表于 2012-2-21 20:11:01
lixqji 发表于 2012-2-21 20:07
啊?!亟待审核通过,谁在审核
不知道,我就发的是正常的回复,没有什么关键字。你看解决思路是底下的,我又写了一遍。你看看你满意不。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 05:45