Sas 数组值中的变量名
我有一个类似的数据 (由于数组下标超出范围错误,此操作无效): 我想做的是, 创建变量以“a”和数组id的值开头。 意思:a_1,a_8,a_4,a_12,a_23 仅当我声明包含23个成员的数组a_uu时,此操作才有效:Sas 数组值中的变量名,sas,Sas,我有一个类似的数据 (由于数组下标超出范围错误,此操作无效): 我想做的是, 创建变量以“a”和数组id的值开头。 意思:a_1,a_8,a_4,a_12,a_23 仅当我声明包含23个成员的数组a_uu时,此操作才有效: data test; array id {5} (1, 8, 4, 12, 23); array a_ {23}; do i = 1 to 5; a_[id[i]] = id[i]; end; run; 但是我
data test;
array id {5} (1, 8, 4, 12, 23);
array a_ {23};
do i = 1 to 5;
a_[id[i]] = id[i];
end;
run;
但是我得到了很多我不需要的缺失变量。
我只想要上面5个
我怎样才能做到这一点呢?PROC转置通常是最简单的方法 首先,制作一个垂直数据集,如下所示:
data vert;
array id[5] (1,8,4,12,23);
do _i = 1 to dim(id);
varname = cats('A_',id[_i]);
vvalue = 1; *it is not apparent to me what the value should be in A_12 or whatnot;
output;
end;
run;
然后PROC TRANSPOSE生成所需的数据集
proc transpose data=vert out=want;
id varname;
var vvalue;
run;
PROC转置通常是最简单的方法 首先,制作一个垂直数据集,如下所示:
data vert;
array id[5] (1,8,4,12,23);
do _i = 1 to dim(id);
varname = cats('A_',id[_i]);
vvalue = 1; *it is not apparent to me what the value should be in A_12 or whatnot;
output;
end;
run;
然后PROC TRANSPOSE生成所需的数据集
proc transpose data=vert out=want;
id varname;
var vvalue;
run;
太好了,乔。非常感谢!太好了,乔。非常感谢!