2017-07-03 73 views
1

我想分析SPSS中非常大量的變量,並且我已經創建了語法來導出我想要的.sav文件的表,但程序會掛起並凍結,嘗試生成導致輸出文件。我試圖找到SPSS語法來完成這個任務,這樣我就可以在不使用結果的.sav文件的情況下使用所有嘗試在輸出文件中創建表的本地內存。所有我能找到的是爲抑制輸出如下:抑制SPSS輸出的語法

OMS /SELECT ALL EXCEPT = [WARNINGS]  
/DESTINATION VIEWER = NO  
/TAG = 'NoJunk'. 
*Your Commands here. 
OMSEND TAG = 'NoJunk'. 

的語法我使用運行我的分析,分析結果導出到文件名爲.sav下面粘貼,它完美的作品,但我需要幫助將上面的語法與上面的語法合併來抑制輸出文件,所以我只是得到了.sav文件,它並沒有耗盡我所有的內存,試圖在輸出文件中創建表。

* OMS. 
DATASET DECLARE GLM_genomicTables. 
OMS 
/SELECT TABLES 
/IF COMMANDS=['GLM'] SUBTYPES=['Test of Between Subjects Fixed Effects' ' Test 
of Between '+ 'Subjects Mixed Effects'] 
/DESTINATION FORMAT=SAV NUMBERED=TableNumber_ 
OUTFILE='GLM_genomicTables' VIEWER=NO. 


DATASET ACTIVATE DataSet1. 
GLM A_42_P454311 
A_42_P456851 
A_42_P458530 
A_42_P458661 
A_42_P461946 
Y Region Condition Timepoint 
/METHOD=SSTYPE(3) 
/INTERCEPT=INCLUDE 
/EMMEANS=TABLES(Condition) 
/EMMEANS=TABLES(Region*Condition) 
/EMMEANS=TABLES(Region*Condition*Timepoint) 
/PRINT=DESCRIPTIVE ETASQ OPOWER 
/CRITERIA=ALPHA(.05) 
/DESIGN= Region Condition Timepoint Region*Condition Region*Timepoint 
Condition*Timepoint 
Region*Condition*Timepoint. 


OMSEND. 
DATASET ACTIVATE GLM_genomicTables. 

SAVE OUTFILE='M:\Users\jessicanielson\Desktop\Ferguson Lab\Preclinical TBI 
datasets\UTMB Data\GLM_genomicTables.sav' 
/COMPRESSED. 
DATASET CLOSE GLM_genomicTables. 

回答

1

我不知道爲什麼系統會掛起,除非查看器對象太大,以至於內存不足。但是,如果存在衝突,則可以使用最近優先級的命令來嵌套OMS命令。所以你可以做這樣的事情。

OMS /SELECT ALL EXCEPT = [WARNINGS] /DESTINATION VIEWER = NO.  
OMS /SELECT TABLES 
/IF COMMANDS=['GLM'] SUBTYPES=['Test of Between Subjects Fixed Effects' ' 
Test of Between '+ 'Subjects Mixed Effects'] 
/DESTINATION FORMAT=SAV NUMBERED=TableNumber_ 
OUTFILE='M:\Users\jessicanielson\Desktop\Ferguson Lab\Preclinical TBI 
datasets\UTMB Data\GLM_genomicTables.sav' VIEWER=NO. 

*Your Commands here.... 

OMSEND. 

(根據需要有適當的引用延續)。這將壓制一切,但警告,並將選定的表對象直接寫入指定的sav文件。但是,選擇三種不同的表類型後,應將每種類型寫入單獨的sav文件。在GLM每次選擇不同類型之前,只使用了三個OMS命令。

並注意只使用一個未標記的OMSEND命令將終止所有活動的OMS請求並在此時寫入選定的對象。

+0

謝謝。你是正確的,它會被掛起,因爲它試圖在輸出文件中顯示這些表,它最大化了我的內存並且不會運行語法。這不僅僅是我想要禁止的警告,而是來自輸出文件中生成的表格,因爲我只是希望將它們放在.sav文件中。 即將進行測試。我嘗試了幾個變量,它工作並沒有把表格放在輸出文件中。現在嘗試完整的50k基因列表!手指交叉! – Jessica

+0

它的作品,但一次只有500個基因。處理500個基因需要1分鐘,處理1000個基因需要11分鐘。所以我修改了語法,以500塊爲單位運行它,保存每個文件,然後我將編寫一個單獨的語法來合併所有文件,以獲得一個包含我所有結果的大文件。 非常感謝您的幫助! – Jessica

+0

帶有Viewer = OMS的OMS可防止在查看器中創建表,但在OMSEND事件之前它不能寫入sav文件,因爲這需要一些在此之前不可用的信息。但是,如果選擇標籤文本作爲OMS輸出格式,則可以逐漸寫入文件,因此內存不會成爲問題。然後你可以用csv/text格式讀取它並創建sav文件。文本文件的增量寫入是在幾個版本之前添加的,但我不記得確切的時間。 – JKP