2011-10-08 76 views
3

我發現混合搜索結果。我需要解析一個SPSS .sav文件來發現數據佈局並提取調查結果。第一步是讀取數據的「模式」。例如,我需要知道該問題及其允許的響應類型。我計劃在我自己的SQL表中對這些數據建模,這樣我就可以根據我的應用程序需求對其進行分片和切分。第二步是填充我的數據模型與受訪者的答案。看看SPSS的sav文件,我相信它有我正在尋找的兩種類型的數據。無需SPSS許可即可從Python,Java(groovy/grails)或C++應用程序訪問SPSS數據?

如果我不嚴格要求,我不需要或不需要昂貴的SPSS軟件。我們不會對這些數據進行統計,只是根據回答過濾器選擇受訪者的子集。 SPSS文件將由授權SPSS的合作伙伴公司提供。我不需要將任何數據返回到SPSS;我的用例是隻讀的。

我可以使用Python,帶或不帶Groovy的Java,C/C++作爲解析器程序。該程序將在數據收集結束時運行一次,因此性能不是特別重要。理想情況下,我想我的代碼是跨平臺的,所以我可以在我的Mac上開發並部署到Linux上,但是如果必須的話,我可以使用Windows,

很多我發現的是從2004年開始的Java類或現代需要來自IBM的DLL的Python代碼,並且是特定於Windows的。基於我對需求的快速解釋,我將非常感謝SO社區的建議。我認爲我的需求很簡單,但還沒有找到我所希望的。一個開源的lib是理想的,但我甚至會以合理的價格支付一個簡單的商業解決方案。

回答

5

您可以免費獲得具有詳細文檔的SPSS I/O模塊,以構建自己的應用程序來讀取(或寫入)sav文件。這些模塊適用於SPSS Statistics支持的所有平臺。

轉到SPSS社區網站http://www.ibm.com/developerworks/spssdevcentral並按照SPSS下載鏈接。你必須註冊,但這是免費的。

SAV文件是一種具有許多複雜結構的二進制格式,所以最好使用I/O模塊。如果將新功能添加到SAV文件中(這經常發生),則I/O模塊會同時更新,因此您的代碼不會過時。

HTH, 喬恩·佩克

1

GNU PSPP顯然可以讀取SPSS數據文件。我也found連接到PSPP源中的a description of the format,雖然它帶有警告「不要嘗試直接讀/寫這種格式」。

+0

感謝。我現在正在下載。我在Google上看到了這一點,但希望只是一個能讓我從Python訪問的庫。但是,鑑於我非常願意在必要時使用C語言編寫解析器,因此這是一個合理的查找位置。我會檢查這一點,同時繼續尋找一個Python或Java的較小組件。 –

+0

[Wikipedia說](http://en.wikipedia.org/wiki/PSPP)某些PSPP功能確實可以通過庫使用,並且因爲存在[Perl wrapper](http:// search)。 cpan.org/~pdonelan/PSPP-Perl-0.7.2.20090730/lib/PSPP.pm),它可以顯然讀取系統文件,至少原則上可以爲Python創建一個類似的包裝。或者,你也許可以編寫一個PSPP腳本來讀取數據並以更易於管理的格式輸出,並以非交互方式進行調用。 –

+0

到目前爲止,我最好的選擇似乎是http://code.activestate。com/recipes/577811-python-reader-writer-for-spss-sav-files /。我今天要試一試。唯一令人失望的是窗口依賴,所以我繼續嘗試其他解決方案。似乎也有一個ODBC驅動程序可用。所以似乎有選擇。仍然向更多的人提出更多想法或建議。 –