这是一个非常简单的问题,已经在几个博客中提到过。但是,我正在尝试各种各样的事情而且它不起作用。 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时会发生同样的错误。
答案 0 :(得分:0)
确保输入行实际上有空格,而不是字段之间的其他字符。这可能弄乱你原来的INPUT声明。
此外,您的INPUT()函数在信息中使用宽度10,但您的数据只有8个字符长。因此,如果变量的字符9或10中有一些非数字,非空格字符,则INPUT()函数调用将失败。