訣竅是將變量「Score」作爲一行進行轉換。想不到一個簡單的方法來避免SAVE/GET - 改進的餘地。
file handle tmp
/name = "C:\DATA\Temp".
***.
data list free /Test (a1) Day1 (f8) Day2 (f8) Score (f8).
begin data
A 1 2 100
B 1 3 62
C 3 4 90
D 2 4 20
E 4 5 80
end data.
comp f = 1.
var wid all (12).
save out "tmp\data.sav".
***.
get "tmp\data.sav"
/keep score.
flip.
comp f = 1.
match files
/file "tmp\data.sav"
/table *
/by f
/drop case_lbl.
comp stat = 0.
do rep var = var001 to var005
/k = 1 to 5.
if range(k, Day1, Day2) stat = sum(stat, var).
end rep.
list Test Day1 Day2 Score stat.
結果:
Test Day1 Day2 Score stat
A 1 2 100 162
B 1 3 62 252
C 3 4 90 110
D 2 4 20 172
E 4 5 80 100
Number of cases read: 5 Number of cases listed: 5
非常感謝你,因爲某些原因,雖然當我嘗試運行此它不會產生顯示在語法編輯器中的列表中,當我刪除翻轉顯示但是它仍然擁有統計中的所有0? – user1026987 2012-02-10 01:22:19
「list」命令在這裏是可選的。查看您的數據以查看結果。這裏必須使用「flip」命令。如果沒有「翻轉」,代碼將不起作用。 – djhurio 2012-02-12 10:34:31