假设我在SAS中有以下数据集:
DATA example_1;
INFILE 'data.csv' dsd;
INPUT name $ test1-test5;
ARRAY test{5} test1-test5;
ARRAY maximum{5} _TEMPORARY_ (50, 75, 50, 100, 75);
RUN;
PROC PRINT DATA=example_1;
RUN;
我想创建另一个使用test
数组和maximum
数组的数据集来计算每个测试的分数。
DATA example_2;
SET example_1;
ARRAY percent{5}; /* This can originally be all 0s it doesn't really matter */
DO i = 1 TO 5;
percent{i} = (test{i} / maximum{i}) * 100;
END;
DROP i;
RUN;
PROC PRINT DATA=example_2;
RUN;
如何使用example_1中的这两个数组?我现在使用set example_1
的方式不起作用..
谢谢!
答案 0 :(得分:3)
数组不作为数据集的一部分存储,只存储变量。因此,当您在第二个数据步骤中引用test{i}
时,它不存在。 (变量test1-test5存在,但它们不在数组中。)
只需添加相同的行
ARRAY test{5} test1-test5;
ARRAY maximum{5} _TEMPORARY_ (50, 75, 50, 100, 75);
到第二个数据步骤,它应该可以工作。