在do循环迭代SAS中创建变量

问题描述 投票:0回答:1

我是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;```
sas iteration base do-loops
1个回答
0
投票

要从AV制作FROM_AV和TO_AV,请使用类似以下代码:

FROM_AV = scan(AV,1,',');
TO_AV = scan(AV,2,','); 

如果要使用数组复制四个变量,则需要三个数组。一个用于输入变量列表,两个用于输出变量列表。 (或者out数组可以是二维的。)

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;
© www.soinside.com 2019 - 2024. All rights reserved.