Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 简化SAS中的变量输入_Variables_Input_Sas - Fatal编程技术网

Variables 简化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

数据中有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 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;