假设有以下数据集:
ID date A 201806 B 201809 C 201901 D 201905 E 201906 F 202002 G 202003 H 202004
有没有办法将数据集从6月到次年6月逐年拆分? 让我们说:
新的数据集 1 将是:
ID date A 201806 B 201809 C 201901 D 201905
2018年6月(01)日至2019年5月(31)日
新的数据集 2 将是:
ID date E 201906 F 202002 G 202003 H 202004
2019年6月(01)日至2020年4月(30)日
提前谢谢您
根据发布的结果,我认为在对您发布的数据的最后观察中,202006 应该是 202004。
像这样分割数据很少是一个好主意,但你可以这样做
data have;
input ID $ date : yymmn6.;
format date yymmn6.;
datalines;
A 201806
B 201809
C 201901
D 201905
E 201906
F 202002
G 202003
H 202004
;
data temp;
set have;
from = intnx('year.6', date, 0, 'b');
to = intnx('year.6', date, 0, 'e');
run;
proc sort data = temp;
by to;
run;
data _null_;
if _N_ = 1 then do;
dcl hash h(dataset:"temp(obs=0)", multidata:'y', ordered : 'A');
h.definekey('ID', 'date');
h.definedone();
end;
do until(last.to);
set temp;
by to;
h.add();
end;
h.output(dataset : cats('data_', _N_));
h.clear();
run;