2016-10-07 52 views
3

我正在使用避難所包R讀取帶有user_na=TRUE的spss文件。該文件具有許多帶有值標籤的字符串變量。在R中,只有第一個字符串變量(SizeofH1)將正確的值標籤分配給屬性。 可惜我不能甚至沒有提供這個數據的一個片段,使這個完全複製的,但是這裏是我可以在PSPPR haven:讀取spss文件時缺少標籤和標籤名稱

PSPP Data editor

看到的截圖,什麼str() R中返回...

$ SizeofH1:Class 'labelled' atomic [1:280109] 3 3 3 3 ... 
..- attr(*, "label")= chr "Size of Household ab 2002" 
..- attr(*, "format.spss")= chr "A30" 
..- attr(*, "labels")= Named chr [1:9] "1" "2" "3" "4" ... 
..- attr(*, "names")= chr [1:9] "4 Persons" "2 Persons" "1 Person 50 years plus" "3 Persons" ... 
$ PROMOTIO: atomic 40 1 40 40 ... 
..- attr(*, "label")= chr "PROMOTION" 
..- attr(*, "format.spss")= chr "A30" 
$ inFMCGfr: atomic 1 1 1 1 ... 
..- attr(*, "label")= chr "in FMCG from2011" 
..- attr(*, "format.spss")= chr "A30" 
$ TRADESEG: atomic 1 1 1 1 ... 
..- attr(*, "label")= chr "TRADE SEGMENT" 
..- attr(*, "format.spss")= chr "A30" 
$ ORGANISA: atomic 111 111 111 111 ... 
..- attr(*, "label")= chr "ORGANISATION" 
..- attr(*, "format.spss")= chr "A30" 
$ NAME : atomic 9 9 9 9 ... 
..- attr(*, "label")= chr "NAME" 
..- attr(*, "format.spss")= chr "A30" 

我希望有人能指出我導致這種行爲的任何可能的原因。

+0

將變量類型從字符串更改爲數字(在spss中)在這種情況下解決了我的問題。但是,我仍然不確定爲什麼第一列被正確讀取,以及如何在不訪問spss版本的情況下解決此問題。 – supersambo

回答

2

最好的辦法是將你的spss文件保存爲CSV,然後在R中讀取。我之前遇到過這種情況,有些字符串沒有正確讀取 - 通常SPSS對於字符串變量來說不是很聰明可能導致這個問題。

+0

謝謝。這實際上有幫助。但是,我希望有任何方法可以在不使用SPSS的情況下解決這個問題。 – supersambo

+2

如果您沒有spss許可證,則有一個類似於SPSS的開放源代碼應用程序,並允許您導入SAV文件並將其導出到csv。在這裏你可以找到軟件:http://www.gnu.org/software/pspp/ 和指南:http://lists.gnu.org/archive/html/pspp-users/2011-11/msg00033 html的 – RomRom