VECTOR 在迴圈結構外部 (VECTOR 指令)

VECTOR 最常與迴圈結構相關聯,因為 LOOP 的索引變數可用作下標。 不過,下標可能來自其他地方,包括來自資料。

範例

* Create a single case for each of students 1, 2, and 3.
 
DATA LIST /STUDENT 1 SCORE 3-4 TESTNUM 6.
BEGIN DATA
1 10 1
1 20 2
1 30 3
1 40 4
2 15 2
2 25 3
3 40 1
3 55 3
3 60 4
END DATA.
 
VECTOR RESULT(4).
COMPUTE RESULT(TESTNUM)=SCORE.
 
AGGREGATE OUTFILE=*/BREAK=STUDENT
        /RESULT1 TO RESULT4=MAX(RESULT1 TO RESULT4).
 
PRINT FORMATS RESULT1 TO RESULT4 (F2.0).
PRINT /STUDENT RESULT1 TO RESULT4.
EXECUTE.
  • 資料是記錄在個別案例中的測試分數,以及學生識別號碼和測試號碼。 在此範例中,有四個可能的測試給三個學生。 並非所有學生都參加了所有的考試。
  • 向量 結果 會透過 RESULT4建立變數 RESULT1
  • 對於每一個觀察值, COMPUTE 會根據 TESTNUM的值,將 SCORE 值指派給四個向量變數之一。 每個觀察值的其他三個向量變數會保留它們已起始設定的系統遺漏值。
  • 由變數 STUDENT 聚集會建立新觀察值,如 PRINT 指令的輸出所示。 AGGREGATE 中的 MAX 函數會傳回 STUDEN具有相同值之觀察值的最大值。 如果學生已進行特定測試,則會傳回一個有效值作為變數 RESULT1的值,即 RESULT2RESULT3RESULT4
圖 1. 聚集之後的 PRINT 輸出
聚集之後的 PRINT 輸出