Попытка прочитать файл SPSS в R. Превращается во все NA.Ошибки внутри - PullRequest
1 голос
/ 06 декабря 2011

Я пытаюсь прочитать файл SPSS в R, используя read.spss. Это очень большой файл (World Values ​​Survey), содержащий около 67 тыс. Записей.

Вот код с ошибками:

> library(foreign)
> wvs = read.spss("C:/wvs2005_v20090901a.sav",to.data.frame=TRUE)
Warning messages:
1: In read.spss("C:/wvs2005_v20090901a.sav", to.data.frame = TRUE) :
C:/wvs2005_v20090901a.sav: Unrecognized record type 7, subtype 8 encountered in system file
2: In `levels<-`(`*tmp*`, value = c("Missing; Unknown", "Not asked",  :
duplicated levels will not be allowed in factors anymore
3: In `levels<-`(`*tmp*`, value = c("Missing; Unknown", "Not asked",  :
duplicated levels will not be allowed in factors anymore
4: In `levels<-`(`*tmp*`, value = c("Missing; Unknown", "Not asked",  :
duplicated levels will not be allowed in factors anymore
5: In `levels<-`(`*tmp*`, value = c("Missing; Unknown", "Not asked",  :
duplicated levels will not be allowed in factors anymore
6: In `levels<-`(`*tmp*`, value = c("Missing; Unknown", "Not asked",  :
duplicated levels will not be allowed in factors anymore
7: In `levels<-`(`*tmp*`, value = c("Missing; Unknown", "Not asked",  :
duplicated levels will not be allowed in factors anymore
8: In `levels<-`(`*tmp*`, value = c("Missing; Unknown", "Not asked",  :
duplicated levels will not be allowed in factors anymore
9: In `levels<-`(`*tmp*`, value = c("Missing; Unknown", "Not asked",  :
duplicated levels will not be allowed in factors anymore

Любое понимание очень ценится.

Ответы [ 4 ]

4 голосов
/ 06 декабря 2011

Вы пробовали другую функцию для чтения в spss?Я нашел два:

из ?read.spss Другой пакет, также основанный на кодовой базе PSPP, доступен в пакете 'memisc': см. Его справку для 'spss.system.file'.

Такжев пакете Hmisc есть функция spss.get, которая обеспечивает «Улучшенный импорт файлов SPSS».

Я рекомендую сначала попробовать Hmisc::spss.get.

2 голосов
/ 07 декабря 2011

Последние версии R изменились таким образом, что это приводит к появлению ошибки о дублированных значениях.

SPSS Statistics позволяет нескольким значениям иметь одну и ту же метку значения (обычно вы этого не хотите, но иногда это полезно). R, при преобразовании переменных в факторы, может использовать метки значений для определения уровней факторов, и это вызывает сообщение такого типа.

Если вы добавите use.value.labels = FALSE в свой вызов read.spss, вы не получите это сообщение. Конечно, тогда вам нужно будет самому составить факторы, возможно, используя level = вместо меток = in factor ().

Вы все еще можете получать предупреждающие сообщения о неизвестных 7 подтипах записи. Пакеты R не знают, как интерпретировать всю информацию записи 7, поэтому она будет просто потеряна. Во многих случаях это безвредно, но вы должны проверить ваши данные дважды.

SPSS Statistics может запускать код R, и он предоставляет API, который будет правильно передавать данные между Статистикой и R.

НТН, Джон Пек

1 голос
/ 06 декабря 2011

Я только что вспомнил: часто, когда я пытаюсь прочитать в файле SPSS, я получаю ту же ошибку, но я продолжаю и все еще вспоминаю объект, названный read.spss, и как-то все в порядке.

Япредполагаю, что вы не пытались нажать на объект, который вы назвали "wvs"

Снова попробуйте то, что я предлагал ранее, но затем вызовите wvs, как я сделал ниже:

wvs <- read.spss("C:/wvs2005_v20090901a.sav", use.value.labels = FALSE,
           to.data.frame=TRUE)
head(wvs)

Я редактировализ "wvs" в "head (wvs)", потому что файл очень большой.

0 голосов
/ 14 сентября 2012

У меня была точно такая же проблема с данными с сайта ESS (European Social Survey), и я решил ее, следуя подсказке в read.spss справке. Используя вместо этого пакет memisc, вы можете импортировать переносной SPSS-файл, например так:

data <- as.data.set(spss.portable.file("filename.por"))

Аналогично для файлов .sav:

data <- as.data.set(spss.system.file('filename.sav'))

хотя в этом случае мне кажется, что я пропускаю некоторые строковые значения, в то время как переносимый импорт работает без проблем. Страница справки для spss.portable.file заявок:

Механизм импорта более гибкий и расширяемый, чем read.spss и read.dta пакета "foreign", так как большая часть анализа заголовков файлов выполняется в R. Они также адаптированы для эффективной загрузки больших объемов. наборы данных. Наиболее важно, что объекты импорта поддерживают метки, отсутствующие значения и описания, предоставляемые этим пакетом.

...