Variables 简化SAS中的变量输入
数据中有90个变量,我想在SAS中执行以下操作 这是我的SAS代码:Variables 简化SAS中的变量输入,variables,input,sas,Variables,Input,Sas,数据中有90个变量,我想在SAS中执行以下操作 这是我的SAS代码: data test; length id class sex $ 30; input id $ 1 class $ 4-6 sex $ 8 survial $ 10; cards; 1 3rd F Y 2 2nd F Y 3 2nd F N 4 1st M N 5 3rd F N 6 2nd M Y ; run; data items2; set test; length tid 8; length ite
data test;
length id class sex $ 30;
input id $ 1 class $ 4-6 sex $ 8 survial $ 10;
cards;
1 3rd F Y
2 2nd F Y
3 2nd F N
4 1st M N
5 3rd F N
6 2nd M Y
;
run;
data items2;
set test;
length tid 8;
length item $8;
tid = _n_;
item = class;
output;
item = sex;
output;
item = survial;
output;
keep tid item;
run;
如果我有90个变量像这样输入数据呢?应该有一个很长的清单。我想简化它 您可以使用数组或PROC转置 以下内容未经测试,因为您尚未提供输入数据集的示例
DATA ITEMS;
ARRAY VARS {*} VAR1-VAR90;
SET REPLACE;
DO I = LBOUND(VARS) TO HBOUUND(VARS);
ITEM = VARS{I};
OUTPUT;
END;
RUN;
或
在未来,最好是您可以提供您的输入和所需的输出。我似乎无法对上述答案添加其他注释,因此我在这里添加了一条注释 您需要扩展VAR语句,以包含所有需要转置的变量 类别——生存率是指类别和生存率之间的所有变量(含)
发布您的代码和错误,以便我能更好地帮助您。谢谢,我刚刚更新了代码,我更喜欢使用Proc transpose,或者您的方法还可以,您能重写代码吗?,我运行您的代码,但是我不认为proc转置是正确的。错误如下:错误:在先前定义的变量列表中找不到变量_84001_84001是我的真实变量之一。
PROC TRANSPOSE DATA = TEST OUT = WANT;
BY ID;
VAR CLASS -- SURVIAL;
RUN;