我在單個文件夾中有.sav格式的24個spss文件。所有這些文件具有相同的結構。我想在所有這些文件上運行相同的語法。是否有可能爲此編寫一個spss代碼?如何在多個spss文件上運行相同的語法
1
A
回答
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.
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.
相關問題
- 1. 自動在多個數據文件上運行spss語法文件
- 2. 如何從SPSS中的另一個語法文件獲取語法文件?
- 3. 無法從Python SPSS語法運行Python
- 4. 鏈接SPSS語法文件
- 5. 如何在SPSS語法
- 6. SPSS Macro在多個數據文件中運行聚合命令
- 7. PHP - 在同一個文件上多次運行相同的php函數
- 8. 如何在同一個內核上並行多次運行相同的進程?
- 9. 允許多個Python GUI同時運行相同的exe文件
- 10. SPSS語法 - 如何通過SPSS處理缺失值語法
- 11. 如何在多個Linux系統上同時運行相同的腳本
- 12. 在多個IQueryable上並行運行相同的linq查詢?
- 13. 多個網站上的相同文件
- 14. 在多個文件上執行相同的操作
- 15. 在單個文件上執行多次相同的動作
- 16. 如何指定SPSS語法文件的編碼?
- 17. 從相同的CodeIgniter文件運行多個客戶端
- 18. 運行具有相同配置文件的多個網站
- 19. (Perl)爲多個文件運行相同的代碼
- 20. Python:運行相同的Unittest模塊測試多個文件
- 21. 在testNG的多個URL上運行相同的測試
- 22. 在多個文件上運行excel宏
- 23. 在多個Excel文件上運行宏
- 24. 如何運行多個實例具有不同配置值的相同jijster war文件的相同角色
- 25. 在相同的運行時間運行兩個相同的DLL?
- 26. 如何使用多個輸入文件運行相同的編碼UI測試
- 27. 你如何在同一時間運行多個java文件?
- 28. 運行在相同代碼庫上的多個網站?
- 29. LINQ(對象),在相同的IEnumerable上運行多個查詢?
- 30. 在多個計算節點上運行相同的Java程序
嗨! SPSSINC似乎是一個擴展包。我已經下載它,並試圖安裝它..但我得到一個錯誤無法安裝擴展束在路徑文件中。 – user2717955 2014-10-28 10:39:39
@ user2717955 - 我無法幫上忙。我唯一的猜測是你需要在安裝擴展時以管理員身份登錄。 – 2014-10-28 11:17:44
嗨!我能夠安裝插件。但是,我還需要一個命令行將excel工作簿中的24個excel工作表(從1-24編號)導入spss,作爲單獨的數據集文件,名爲1.sav,2.sav .... 24.sav。這些文件中的每一個文件都是相似的格式,只有要導入的行數在文件中不同。然後需要在所有文件中進行類似的重新編碼。你能幫助我嗎? – user2717955 2014-10-28 11:37:47