我要给退伍军人管理局做一份数据报告。数据示例:
日期-客户
2019-4月01日
2019年3月2日-5
03-2019-2
2019-9年3月05日
所以我在2019年3月4日没有客户。这一天在我的报告数据中没有显示为0,因为它不在原始数据中。
有没有一种简便的方法可以从SAS EG中获得(所有)年份的所有日期,然后就离开,加入到它的工作中?
输出应为:
2019-4月01日
2019年3月2日-5
03-2019-2
04Mar2019 -0
2019-9年3月05日
有什么建议吗?
谢谢!
发布于 2019-04-10 02:28:05
不知道你实际在做什么,但你可以只生成一个数据集,每个日期只有一个观察值,并将它们合并在一起。
data have ;
input date customers;
informat date date. ;
format date date9.;
cards;
01Mar2019 4
02Mar2019 5
03Mar2019 2
05Mar2019 9
;
proc sql ;
create table all_dates as
select min(date) as mindate, max(date) as maxdate
from have
;
quit;
data all_dates;
set all_dates;
do date=mindate to maxdate;
customers=0;
output;
end;
format date date9.;
keep date customers;
run;
data want;
merge all_dates have;
by date;
run;结果:
Obs date customers
1 01MAR2019 4
2 02MAR2019 5
3 03MAR2019 2
4 04MAR2019 0
5 05MAR2019 9https://stackoverflow.com/questions/55594246
复制相似问题