全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2270 4
2016-10-20
%let  firstday=.;
%let  secondday=.;
data dat;
set dat(firstobs=20  obs=21);
by descending tradeday;

if _n_=1 then do; call symput("firstday", tradeday); end;
if _n_=2 then do; call symput("secondday", tradeday);end;
run;

%put &firstday;
%put &secondday;

data dat;
set dat;
b=&secondday;

format b yymmdd10.;
a=put(&secondday.,yymmdd10.);
run;

sas小白一个 ,这个问题没搞明白,从数据库读取两个日期到变量里,%put出来的值都是对的,2016-08-05,格式是YYYY-MM-DD,结果后面的data部里b 和a 值变成了1965年6月份的数据了,不知道哪里的问题。。。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-10-23 09:47:28
可否上传一下数据集 这样更方便纠错。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-10-23 11:37:49
把千面两个%let delete
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-10-25 01:02:51
假如secondday是2016-10-25
b=&secondday=2016-10-25=1981,为1960年1月1日后的第1981天,a也是同理
b="&secondday.";
a=put("&secondday.",yymmdd10.);
这样就好了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-10-27 11:22:42
call symput("secondday",input(tradeday,yymmdd10.));
后来我这样把变量改成数值型的就没问题了。。。不过还不知道为什么字符型的就不行
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群