我目前有一个日期格式为" FY15 FEB"的数据集。在尝试格式化此变量以用于SAS的时间和日期时,我已完成以下操作:
data temp;
set pre_temp;
yr = substr(fiscal,3,2);
month = substr(fiscal,6,length(fiscal));
mmmyy = month||yr;
input mmmyy MONYY5.;
datalines;
run;
所以,我有代表年份和相应月份的字符串。但是,运行此代码会给出错误"未找到或无法加载信息$ MONYY。"对这个错误做一些背景告诉我,它与传递信息的错误类型的值有关;我应该改变什么才能获得正确的输出?
*编辑:我在SAS支持页面上看到" MONYYw的格式。期望SAS日期值作为输入;"鉴于此,如何在此之前从字符串转换为不同的日期格式?
答案 0 :(得分:1)
当你看到$时,它意味着字符值。在这种情况下,您将为SAS提供一个字符值并为其提供数字格式。 SAS为您插入$,但是没有这样的格式存在。
我将忽略datalines语句,因为我不确定它为什么存在(虽然我注意到没有set语句)。您可以更轻松地将程序更改为:
data temp;
yr = substr(fiscal,3,2);
month = substr(fiscal,6,length(fiscal));
pre_mmmyy = strip(month)||strip(yr);
mmmyy=input(pre_mmmyy,MONYY5.);
run;
您还可以从子字符串函数中删除“length(financial))”。 substring函数的第三个参数是可选的,默认情况下将转到字符串的末尾。