2012-02-07 10 views
0

別のセルを呼び出すことが一つのセルの値を使用すると、いくつかのデータです:SPSS以下

Test Day1 Day2 Score 
    A 1 2 100 
    B 1 3 62 
    C 3 4 90 
    D 2 4 20 
    E 4 5 80 

私は列「日」と「2日目」から値を取得し、ために行番号を選択するためにそれらを使用しようとしています列のスコア。たとえばTest Aの場合、100と62の合計はスコアの1行目と2行目の値であるため、その合計を求めたいと思います。テストB 100、62、90の合計を探したいと思います。 これを行う方法については、誰も知りませんか? Excelで間接関数に似た何かを使用しようとしていますか?ありがとう

答えて

1

トリックは変数 "スコア"を行として変換することです。 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

はしかし、何らかの理由で、どうもありがとうございましたしかしそれはまだstatですべての0を持っていますか? – user1026987

+0

"list"コマンドはここではオプションです。あなたのデータを見て、結果を確認してください。ここでは "flip"コマンドが必須です。このコードは「フリップ」なしでは機能しません。 – djhurio