如何在SAS(大学)中将char字符转换为日期?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在SAS(大学)中将char字符转换为日期?相关的知识,希望对你有一定的参考价值。
这是一个非常简单的问题,已经在几个博客中提到过。但是,我正在尝试各种各样的事情而且它不起作用。 Idk如果发生这种情况是因为我正在使用SAS大学,或者当我输入值时我做错了什么。
我要做的是将字符串格式的列转换为日期格式。
/*Dataset for practice*/
data test;
input date_1 $ value_1;
cards;
20151102 1000
20151010 500
;
run;
data test_new;
set test;
date_1_new = input(date_1,yymmdd10.);
format date_1_new yymmdd10.;
run;
上面的脚本返回date_1_new的缺失值。对我来说似乎很奇怪的是,下面的代码使用数值,只需将数字转换为文本然后转换为日期。它正在发挥作用。这是相同的原则,但它的工作原理。
/*Dataset for practice*/
data test;
input date_1 value_1;
cards;
20151102 1000
20151010 500
;
run;
data test_new;
set test;
date_1_new = input(put(date_1,8.),yymmdd10.);
format date_1_new yymmdd10.;
run;
为什么第一个代码不起作用?看起来我正在做同样的事情......注意:使用yymmdd8时会出现同样的错误。
答案
确保输入行实际上有空格而不是字段之间的其他字符。这可能弄乱你原来的INPUT声明。
您的INPUT()函数在信息中使用宽度10,但您的数据只有8个字符长。因此,如果变量的字符9或10中有一些非数字,非空格字符,那么INPUT()函数调用将失败。
以上是关于如何在SAS(大学)中将char字符转换为日期?的主要内容,如果未能解决你的问题,请参考以下文章