2015-05-25 29 views
2

我有數據,我必須向客戶端提供一個腳本,其中包含由另一個變量分組的某個變量的簡單百分比。當我嘗試計算案例總數(觀察值或行數,無論你想調用它)的百分比時,問題就出現了,但看起來這根本不可能。SPSS - 聲明和使用最大數量的病例作爲常量

我搜索代碼,讓我做類似聲明具有註冊任何情況下都相同的值(佔最大數量)數值常數變量,像這樣:

COMPUTE total_rows=$CASENUM. 
EXECUTE. 

COMPUTE max_number_rows = MAX(total_rows) . 
COMPUTE total_percentage = MyVariable/max_number_rows * 100 . 

但不工作...

多年來,我發現,只有這樣,才能做到這一點是與AGGREGATE命令的互聯網,而是因爲我有能力提供一個且只有一個腳本文件我不能使用它,輸出文件。我不能給客戶端一個.sav的原始數據,另一個使用AGGREGATE函數生成的新表格。

回答

0

AGGREGATE是正確的方法。默認情況下,聚合將新變量寫入活動數據集,因此除非明確指示爲聚合變量創建新文件,否則不會以其他數據文件結束。

嘗試:

compute total_rows = $casenum. 
aggregate nrows = max(total_rows). 
compute total_percentage = (myvariable/nrows) * 100. 
exe. 

delete variables nrows total_rows. 
1

AGGREGATE可直接用於提取數據集中案件總數:

AGGREGATE OUTFILE=* MODE=ADDVARIABLES /NRows=N. 

中查找筆記AGGREGATE,特別是不同的聚集函數可用。特別是,我要說的是功能NNU之間的區別,其中N返回一個加權總基本大小,而NU返回一個未加權的基本大小(當然,如果沒有加權影響,那麼兩者都會產生相同的值)。