Syntax 抑制SPSS输出的语法

Syntax 抑制SPSS输出的语法,syntax,output,spss,Syntax,Output,Spss,我试图在SPSS中分析大量变量,我创建了语法来将表导出到.sav文件中,但程序挂起并冻结,试图在输出文件中生成结果。我正试图找到SPSS语法来实现这一点,这样我就可以只获取结果的.sav文件,而不必使用所有本地内存来创建输出文件中的表。我所能找到的是以下抑制输出的方法: OMS /SELECT ALL EXCEPT = [WARNINGS] /DESTINATION VIEWER = NO /TAG = 'NoJunk'. *Your Commands here. O

我试图在SPSS中分析大量变量,我创建了语法来将表导出到.sav文件中,但程序挂起并冻结,试图在输出文件中生成结果。我正试图找到SPSS语法来实现这一点,这样我就可以只获取结果的.sav文件,而不必使用所有本地内存来创建输出文件中的表。我所能找到的是以下抑制输出的方法:

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.

我不知道为什么系统会挂起,除非查看器对象太大以至于内存不足。但是,如果有冲突,您可以嵌套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请求,并在此时写入选定的对象。

谢谢。你是对的,它挂起了,因为它试图在输出文件中显示表,它耗尽了我的内存,不会运行语法。我要抑制的不仅仅是警告,还有在输出文件中生成的表,因为我只想在.sav文件中生成它们。现在就去测试它。我在几个变量上进行了尝试,结果成功了,没有将表放入输出文件中。现在来试试完整的50k基因列表!祝你好运!!它是有效的,但一次只有500个基因。处理500个基因需要1分钟,处理1000个基因需要11分钟。因此,我修改了语法,将其分为500块运行,保存每个文件,然后我将编写一个单独的语法来合并所有文件,得到一个包含所有结果的大文件。非常感谢你的帮助!OMS with Viewer=no可防止在查看器中创建表,但在OMSEND事件之前,它无法写入sav文件,因为这需要一些在此之前不可用的信息。但是,如果选择选项卡式文本作为OMS输出格式,文件可以增量写入,因此内存不会成为问题。然后,您可以将其读取为csv/文本格式,并创建sav文件。文本文件的增量写入是在几个版本之前添加的,但我不记得确切的时间。