Arrays 为数组中的变量指定另一个数组中变量的值

Arrays 为数组中的变量指定另一个数组中变量的值,arrays,sas,Arrays,Sas,因此,我有一系列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

因此,我有一系列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只是将两个阵列并排粘贴在一起。有什么想法吗?谢谢

数组并不是处理这个问题的正确方法。数组跨越一行;这样做是针对行,而不是列

一个简单的老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;

你对数据的解释没有什么意义。如果这是一张excel表格,它会是什么样子?
d18141
是一个变量还是一个值?修复了我在c++中寻找的示例,您只需执行这个int数组[];我只知道如何使用SAS和R。?SAS数组与C++阵列完全不同,你是一个超级天才。谢谢