我想在下面生成数据集。而不是写出1-84,有没有更好的这样做?谢谢。
data test; input Index @@; datalines;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
81 82 83 84
; run;
另外,我有一个如下所示的宏变量。写一个更好的方法吗?
%let Term=
24 24 24 24 24 24 24 24 24 24 24 24
36 36 36 36 36 36 36 36 36 36 36 36
48 48 48 48 48 48 48 48 48 48 48 48
60 60 60 60 60 60 60 60 60 60 60 60
66 66 66 66 66 66 66 66 66 66 66 66
72 72 72 72 72 72 72 72 72 72 72 72
84 84 84 84 84 84 84 84 84 84 84;
答案 0 :(得分:0)
data test;
do index= 1 to 84;
output;
end;
run;
data test2;
array num [7] (24 36 48 60 66 72 84);
do i = 1 to dim(num);
do j = 1 to 12 ;
index = num[i];
output;
end;
end;
run;
proc sql noprint;
select index into :Term separated by " " from test2;
quit;
%put &Term.;
或者不使用数据集:
data _null_;
length term $3000;
array num [7] (24 36 48 60 66 72 84);
do i = 1 to dim(num);
do j = 1 to 12 ;
term = catx(" ",term,num[i]);
end;
end;
call symput('Term',term);
run;
%put &Term.;
如果你以偶数步进增加,你可以在循环中使用by
,例如
data _null_;
length term $3000;
do index= 24 by 12 to 84;
do i = 1 to 12 ;
term = catx(" ",term,index);
end;
end;
call symput('Term',term);
run;
%put &Term.;