2015-10-28 85 views
0

當我在SPSS中使用列和或行百分比運行交叉表時,百分比的標準標籤爲% within <VARLABEL>(或使用德語輸出時爲% innerhalb von <VARLABEL>)。在某些情況下,我覺得這個很長,我想在語法中定義一個更短的前綴版本(所以我不必改變一切手冊)。如果可能的話,我該怎麼做?更改SPSS輸出中交叉表的標準標籤前綴

回答

2

@Jignesh,不!定義輸出標籤的文本文件是編譯文件,不應該混淆。

更改標籤的一種方法是在Python或Basic中編寫一個自動腳本來修改標籤。您可以通過編輯>選項>腳本將其附加到表格類型,並且每次創建該類型的表格時都會運行它。

這當然需要編寫這樣一個腳本的能力。另一種更簡單的方法是使用SPSSINC MODIFY TABLES擴展命令和一個非常小的Python代碼片段。您必須顯式運行此命令,但它可以遍歷指定類型的所有查看器表並進行更改。這裏有一個CROSSTABS的例子。在此示例中,自定義函數將以「%within」開頭的任何行標籤更改爲「%」。

CROSSTABS 
    /TABLES=jobcat BY gender 
    /CELLS=COUNT ROW. 

begin program. 
def relabel(obj, i, j, numrows, numcols, section, more,custom): 
    oldlabel = obj.GetValueAt(i, j) 
    newlabel = oldlabel.replace("% within", "%") 
    obj.SetValueAt(i, j, newlabel) 
end program. 


SPSSINC MODIFY TABLES subtype="'Crosstabulation'" 
SELECT="^% within " 
REGEXP=YES DIMENSION= ROWS 
LEVEL = -1 PROCESS = PRECEDING 
/STYLES APPLYTO=LABELS customfunction="\__main__.relabel". 

爲了使用該函數的定義內聯,你至少需要版本的SPSSINC MODIFY TABLES 1.5.0。如果您安裝了舊版本並且不想更新它,那麼Python函數只需要保存在單獨的Python文件中。

在統計版本22或更高版本中,您可以從Utilities菜單中下載並安裝擴展命令,例如MODIFY TABLES

+0

我通常總是對'CTABLES'使用'SPSSINC MODIFY TABLES',我完全忘記了它可以用於所有/任何表格。是的,當然比黑客系統文件更好的方法......(不是我曾經這樣做過的......) –

+0

在我刪除了「\ __ main __。relabel」中的反斜槓後很好地工作 - >''__main __。relabel 「否則我會得到一個錯誤。 – mirirai

+0

@JKP非常感謝您開發Modify Tables擴展。在我目前的工作中,它經常拯救我的生命(時間):-) – mirirai

0

CUSTOM TABLES旨在爲您提供很大的靈活性來應用這些類型的自定義。但我不知道如何更改CROSSTABS中的默認文本。如果你真的想這樣做,我懷疑你可以破解一些系統文件,以達到這個目的。