2014-09-30 33 views

回答

0

您可以使用SPSSINC PROCESS FILES用戶提交的命令來執行此操作或編寫自己的宏。所以首先讓我們創建一些非常簡單的假數據。

*FILE HANDLE save /NAME = "Your Handle Here!". 

*Creating some fake data. 
DATA LIST FREE/X Y. 
BEGIN DATA 
1 2 
3 4 
END DATA. 
DATASET NAME Test. 
SAVE OUTFILE = "save\X1.sav". 
SAVE OUTFILE = "save\X2.sav". 
SAVE OUTFILE = "save\X3.sav". 
EXECUTE. 

*Creating a syntax file to call. 
DO IF $casenum = 1. 
PRINT OUTFILE = "save\TestProcess_SHOWN.sps" /"FREQ X Y.". 
END IF. 
EXECUTE. 

現在我們可以使用SPSSINC PROCESS FILES命令來指定文件夾中的SAV文件和TestProcess_SHOWN.sps語法適用於每個這些文件。

*Now example calling the syntax. 
SPSSINC PROCESS FILES INPUTDATA="save\X*.sav" 
SYNTAX="save\TestProcess_SHOWN.sps" 
OUTPUTDATADIR="save" CONTINUEONERROR=YES 
VIEWERFILE= "save\Results.spv" CLOSEDATA=NO 
MACRONAME="!JOB" 
/MACRODEFS ITEMS. 
+0

嗨! SPSSINC似乎是一個擴展包。我已經下載它,並試圖安裝它..但我得到一個錯誤無法安裝擴展束在路徑文件中。 – user2717955 2014-10-28 10:39:39

+0

@ user2717955 - 我無法幫上忙。我唯一的猜測是你需要在安裝擴展時以管理員身份登錄。 – 2014-10-28 11:17:44

+0

嗨!我能夠安裝插件。但是,我還需要一個命令行將excel工作簿中的24個excel工作表(從1-24編號)導入spss,作爲單獨的數據集文件,名爲1.sav,2.sav .... 24.sav。這些文件中的每一個文件都是相似的格式,只有要導入的行數在文件中不同。然後需要在所有文件中進行類似的重新編碼。你能幫助我嗎? – user2717955 2014-10-28 11:37:47

1

另一個(較低級的)方法是使用命令INSERT。要這樣做,請重複每個sav-file GET,運行INSERT的語法,並保存該文件。可能是這樣的:

get 'file1.sav'. 
insert file='syntax.sps'. 
save outf='file1_v2.sav'. 

dataset close all. 
get 'file2.sav'. 
insert file='syntax.sps'. 
save outf='file2_v2.sav'. 

etc etc. 

祝你好運!

+1

+1 - 你可以將它封裝在一個宏中,以使相同命令的重複調用更簡單,特別是如果文件名列表是一個方便的計數器。 – 2014-10-28 11:19:00

0

如果您需要運行的語法完全獨立於文件,那麼您可以使用:INSERT FILE = 'Syntax.sps'或將代碼放入宏中,例如

Define !Syntax() 
* Put Syntax here 
!EndDefine. 

然後,您可以運行這些手動操作;

get file = 'file1.sav'. 
insert file='syntax.sps'. 
save outfile ='file1_v2.sav'. 

或者

get file = 'file1.sav'. 
!Syntax. 
save outfile ='file1_v2.sav'. 

,或者如果文件遵循合理嚴格的命名結構可以嵌入上述任一在蟒蛇的簡單一點;

Begin Program. 
imports spss 
for i in range(0, 24 + 1): 
syntax = "get file = 'file" + str(i) + ".sav.\n" 
syntax += "insert file='syntax.sps'.\n" 
syntax += "save outfile ='file1_v2.sav'.\n" 
print syntax 
spss.Submit(syntax) 
End Program. 
相關問題