我有两个数字变量,年和月。年变量有2010年和月变量等数据有1和10之类的数据(1到9在前面没有零)。我需要将这两个变量组合起来,然后将其转换为YYMMn6。格式,以便我可以根据日期合并另一个数据集。
例如,输入为:
2012 1 2012 10
我想要的输出是(YYMMn6。格式): 201201 201210
到目前为止我尝试的代码:
year1=close_year;
year2=clse_month;
yearmonth = cats(of year1-year2); *this results in character variable;
DATE2 = INPUT(PUT(yearmonth,8.),YYMMN6.);
FORMAT DATE2 YYMMN6.;
当然我收到一条错误消息。感谢。
答案 0 :(得分:3)
使用数字变量我使用MDY函数而不是put和诸如此类的东西;你在这里遇到了麻烦,因为20101
不是有效的YYMM值。
dateval = mdy(monthval,1,yearval);
format dateval yymmn6.;
请注意' final'日期格式与您用于从信息输入日期变量的任何内容完全无关;
与SAS的观点没有区别dateval = input('01JAN2010',DATE9.);
format dateval YYMMN6.;
和
dateval = input('201001',YYMMN6.);
format dateval YYMMN6.;
输入/信息将值转换为自1960年1月1日以来的数字天数。最终格式告诉SAS如何显示新创建的号码。
答案 1 :(得分:1)
您可以使用Joe提到的答案
或者您可以使用
mydate=put(mdy(monthval,1,yearval),yymmn6.);
如果你想要以char格式输出。
两者都是正确的。根据您的要求选择。