楼主: qcasrl
14772 17

sas 不规则字符型日期变量换成ddmmyy10.格式 [推广有奖]

11
统计2008陈利 发表于 2015-8-13 09:25:21
chiant 发表于 2015-8-13 04:34
完全不需要这么复杂, 用informat轻松搞定
如果此处不是新生成一个变量,然后输入数据,而是处理数据集中已存在的变量,这种方法是否可行?

12
gaotao0727 发表于 2015-8-13 13:43:57
这么多做法~~厉害

13
chiant 发表于 2015-8-13 16:34:54
统计2008陈利 发表于 2015-8-13 09:25
如果此处不是新生成一个变量,然后输入数据,而是处理数据集中已存在的变量,这种方法是否可行?
如果是已存在的变量,用input函数做。

14
qcasrl 发表于 2015-8-13 17:58:24
统计2008陈利 发表于 2015-8-13 09:23
scan函数只能针对特定分隔符的字符串的子串提取,现在的数据分隔符都是‘-’,所以比较简单,字符串是被分 ...
get !
说的很清楚,太谢谢了

15
qcasrl 发表于 2015-8-13 17:59:48
chiant 发表于 2015-8-13 04:34
完全不需要这么复杂, 用informat轻松搞定
观测对象非常多,而且是已有变量(字符型),这样做也可以吗?

16
qcasrl 发表于 2015-8-13 18:00:43
teqel 发表于 2015-8-13 00:15
yes. But it should work with the option

Datastyle = DMY|MDY
get! 谢谢

17
chiant 发表于 2015-8-13 20:07:34
qcasrl 发表于 2015-8-13 17:59
观测对象非常多,而且是已有变量(字符型),这样做也可以吗?
已有的字符型变量,用input函数转换
format newdate ddmmyy10.;
newdate=input(date,yymmdd10.);

18
chiant 发表于 2015-8-13 22:01:22
chiant 发表于 2015-8-13 20:07
已有的字符型变量,用input函数转换
format newdate ddmmyy10.;
newdate=input(date,yymmdd10.);
测试了一下, 没有问题。完全没有必要用字符串操作。更赞的是这种用法还可以自动处理数据中日期的分隔符不统一的情况。比如:
2004-1-31
2006/11/10
2010*10*1
2010|01|1

  1. data test;
  2.         input date $20.;
  3.         cards;
  4. 2004-1-31
  5. 2006/11/10
  6. 2010*10*1
  7. 2010|01|1
  8. ;
  9. run;

  10. data test2;
  11. set test;
  12. format date2 mmddyy10.;
  13. date2=input(date,yymmdd10.);
  14. run;
复制代码

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

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