2618 8

[问答] 如何处理错误日期? [推广有奖]

  • 0关注
  • 0粉丝

大专生

15%

还不是VIP/贵宾

-

威望
0
论坛币
511 个
通用积分
2.7306
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
106 点
帖子
3
精华
0
在线时间
88 小时
注册时间
2015-12-20
最后登录
2025-1-7

楼主
迎祥受万人3 发表于 2018-6-17 00:40:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请问如果一个数据集中的日期含有错误的日期,请问要怎么处理?
例如:
1985/02/15
1972/02/15
1987/--/--
1960/12/21
1985/11/01

第三个日期是一个错误的日期,如果用字符串的格式读入是可以的,但是在做数据处理时要将这种格式的数据删除,请问有什么好的方法?
二维码

扫码加我 拉你入群

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

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

关键词:数据处理 数据集中 数据删除 字符串 数据集

沙发
迎祥受万人3 发表于 2018-6-17 09:21:16
自己顶一下,有没有大神能教我一下?

藤椅
l1i2n3i4n5g 在职认证  发表于 2018-6-19 08:59:37
先字符串格式读入,然后把含'--'的数据删除,最后转成日期格式

板凳
learsaas 发表于 2018-6-19 16:18:52
  1. data a;
  2.         input date $10.;
  3.         cards;
  4. 1985/02/15
  5. 1972/02/15
  6. 1987/--/--
  7. 1960/12/21
  8. 1985/11/01
  9. ;
  10. run;
  11. data b;
  12.         set a;
  13.         if input(date,??yymmdd10.)=. then delete;
  14. run;
复制代码

报纸
marakesh 发表于 2018-6-20 09:53:10
可以用正则表达式
  1. data a;
  2.         input date $10.;
  3.         cards;
  4. 1985/02/15
  5. 1972/02/15
  6. 1987/--/--
  7. 1987/--
  8. 1948/**/**
  9. 1960/12/21
  10. 1985/11/01
  11. ;
  12. run;
  13. data b(drop=pattern);
  14.     retain pattern_ID;
  15.                 pattern="/19\d\d\D\d\d\D\d\d/";
  16.                 pattern_ID=prxparse(pattern);
  17. set a;
  18.         Position = PRXMATCH(pattern_ID,date);
  19.         if position^=1 then delete;
  20. run;
复制代码

地板
learsaas 发表于 2018-6-20 10:02:46
楼上,没有排除这种1900/00/45这种异常数据

7
marakesh 发表于 2018-6-20 12:37:28
learsaas 发表于 2018-6-20 10:02
楼上,没有排除这种1900/00/45这种异常数据
确实..

8
eijuhz 发表于 2018-7-26 08:28:53 来自手机
读完字符串可以进行异常数据的删选再按日期格式读入

9
whymath 发表于 2018-8-1 21:42:53
learsaas同学的用法就很好了。
??加在格式名前面,表示SAS尽量以这种格式读入变量。也就是能以这种格式读入时,就以这种格式读入,否则置空。

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

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