2011-11-30 25 views
2

比方說,我在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這樣做的方式不起作用..

謝謝!

回答

3

數組不作爲數據集的一部分存儲,只是變量。因此,當您在第二個數據步驟中參考test{i}時,它不存在。 (變量TEST1-TEST5存在,但他們不是在數組中。)

只需添加相同的路線

ARRAY test{5} test1-test5; 
ARRAY maximum{5} _TEMPORARY_ (50, 75, 50, 100, 75); 

第二數據的步驟,它應該工作。