所以,我有一系列的sas日期(18141到18414)和一系列id号码(m101-m254)。我希望日期范围中的每个值对于id范围中的每个值都显示一次,以便
date id
18141 m101
18142 m101
18143 m101
.. ..
18414 m102
18141 m102
18142 m102
18143 m102
.. ..
18414 m102
等
我一直在尝试这个:
data data;
array linx (274) d18141-d18414;
array ids(154) m101-m254;
retain d18141-d18414 m101-m254;
do i=1 to 274;
do j=1 to 154;
linx(i)=ids(j);
end;
end;
run;
但sas只是将两个阵列并排放在一起。有任何想法吗?谢谢!
答案 0 :(得分:1)
阵列并不是解决这个问题的正确方法。数组跨越一行;你用行而不是列来做这个。
普通的旧do循环将使用output
语句为您执行此操作。
data want;
do id_n=101 to 254;
do date='18141'd to '18414'd;
id=cats('m',id_n);
output;
end;
end;
run;