在 do 循环迭代 SAS 中创建变量
Creating variables in do loop iteration SAS
我是 SAS 的新手,我正在尝试拆分列并为拆分的结果指定新名称。
我希望实现的目标:例如我有一个 AV 列。我的代码需要拆分它并调用两个新列 FROM_AV 和 TO_AV。我尝试了多种选择,但创建新名称仍然出错。一世。如果有人能帮助我就太好了。
set work.transposed;
array aresplit AV TD ER PT;
do i=1 to 4;
FROM&aresplit[i]= scan(aresplit[i],1,',');
TO&aresplit[i]= scan(aresplit[i],2,',');
end;
run;```
要从 AV 制作 FROM_AV 和 TO_AV,您可以使用如下代码:
FROM_AV = scan(AV,1,',');
TO_AV = scan(AV,2,',');
如果您想使用数组为四个变量复制它,那么您需要三个数组。一个用于输入变量列表,两个用于输出变量列表。 (或者输出数组可以是二维的)。
array in AV TD ER PT;
array out1 FROM_AV FROM_TD FROM_ER FROM_PT;
array out2 TO_AV TO_TD TO_ER TO_PT;
do index=1 to dim(in);
out1[index] = scan(in[index],1,',');
out2[index] = scan(in[index],2,',');
end;
我是 SAS 的新手,我正在尝试拆分列并为拆分的结果指定新名称。 我希望实现的目标:例如我有一个 AV 列。我的代码需要拆分它并调用两个新列 FROM_AV 和 TO_AV。我尝试了多种选择,但创建新名称仍然出错。一世。如果有人能帮助我就太好了。
set work.transposed;
array aresplit AV TD ER PT;
do i=1 to 4;
FROM&aresplit[i]= scan(aresplit[i],1,',');
TO&aresplit[i]= scan(aresplit[i],2,',');
end;
run;```
要从 AV 制作 FROM_AV 和 TO_AV,您可以使用如下代码:
FROM_AV = scan(AV,1,',');
TO_AV = scan(AV,2,',');
如果您想使用数组为四个变量复制它,那么您需要三个数组。一个用于输入变量列表,两个用于输出变量列表。 (或者输出数组可以是二维的)。
array in AV TD ER PT;
array out1 FROM_AV FROM_TD FROM_ER FROM_PT;
array out2 TO_AV TO_TD TO_ER TO_PT;
do index=1 to dim(in);
out1[index] = scan(in[index],1,',');
out2[index] = scan(in[index],2,',');
end;