当值为1时,获取sas中的列名字符串
这是给定的数据集当值为1时,获取sas中的列名字符串,sas,proc-sql,datastep,Sas,Proc Sql,Datastep,这是给定的数据集 Ins_id Prod1 Prod2 Prod3 Prod4 1234 1 0 1 0 5678 0 0 1 0 91011 0 1 0 1 12131 1 1 0 1 我想创建一个新列,当对应的值为1时显示所有列名。例如,对于ins_id=1234,字符串应该是“Prod1,Prod3”。至少有40个变量 Expected Output:
Ins_id Prod1 Prod2 Prod3 Prod4
1234 1 0 1 0
5678 0 0 1 0
91011 0 1 0 1
12131 1 1 0 1
我想创建一个新列,当对应的值为1时显示所有列名。例如,对于ins_id=1234,字符串应该是“Prod1,Prod3”。至少有40个变量
Expected Output:
Ins_id Prod1 Prod2 Prod3 Prod4 Prod_Yes
1234 1 0 1 0 Prod1, Prod3
5678 0 0 1 0 Prod3
91011 0 1 0 1 Prod2, Prod4
12131 1 1 0 1 Prod1, Prod2, Prod4
有人能帮忙吗?谢谢你 一些基本的阵列功能可以帮助您解决此问题。如果值为1,则使用VNAME()从数组中获取变量名,并使用CATX()将数据组合在一起 未经测试:
data want;
set have;
length prod_yes $100.;
array prod(*) prod1-prod4;
do i=1 to dim(prod);
if prod(i) = 1 then prod_yes = catx(", ", prod_yes, vname(prod(i)));
end;
run;