根据其他 n 个变量创建一个变量

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

我有一个 SAS 数据集,其中有 10 个变量,我想在此基础上创建一个新标志。如果任何类列大于 0,则其名称应出现在标志中,如下图所示。

enter image description here

有人可以帮我解决这个问题吗?

谢谢

sas sas-macro proc-sql enterprise-guide
1个回答
0
投票

试试这个

data have;
input ID Class_Tom Class_Sim Class_Sam Class_Jack Class_Des Class_Pun Class_Jun Class_Kick Class_Pop Class_Neo;
infile datalines dlm = '|' dsd;
datalines;
101|95|  |  |  |  |  |  |  |  |  
102|82|  |27|  |  |  |  |  |  |  
103|  |56|  |  |  |61|  |80|  |  
104|  |  |  |  |  |  |  |  |  |  
;

data want(drop = i);
   set have;
   array c{*} class_:;
   length flag $200;
   flag = '';
   do i = 1 to dim(c);
      if c[i] then flag = catx(' | ', flag, vname(c[i]));
   end; 
run;
© www.soinside.com 2019 - 2024. All rights reserved.