Файл запроса SPSS - PullRequest
       20

Файл запроса SPSS

0 голосов
/ 19 октября 2011

R версия: 2.12.2 / ОС: Windows XP

Данные, которые мне нужно запрашивать и обрабатывать, хранятся в файле SPSS .sav (размер ~ 112 МБ), и у меня есть базовые знания по SPSSсинтаксис.Я гораздо удобнее с R (и обычно предпочитаю его для обработки и анализа данных), поэтому я сохранил файл SPSS в виде файла с разделителями табуляции (размер ~ 85 МБ) и попытался запросить его, используя функциональность из пакета RODBC.

Используя приложение «Источники данных (ODBC)» в группе «Инструменты администрирования» на панели управления Windows, я устанавливаю базу данных (папку Windows), в которой есть таблицы (файлы с разделителями табуляции), с помощью текстового драйвера Microsoft.

В текущей интересующей таблице есть поле «Дата» (называемое «Дата-время»), в котором даты форматируются «% Y /% m /% d».Когда я впервые попытался выполнить запрос к базе данных с условиями в этом поле, мне был возвращен набор результатов с нулевыми наблюдениями.Итак, я изменил «DateTime» на тип данных «Character» и повторил запрос (безрезультатно).

Я могу успешно выполнить запрос к базе данных, то есть

sqlQuery(channel = cn, query = "SELECT * FROM large_table.txt", as.is = TRUE, stringsAsFactors = FALSE, max = 20)

возвращает результаты.Следующие запросы возвращают наборы результатов с нулевыми наблюдениями (я убедился, что в его поле «DateTime» есть хотя бы одна запись со значением «2011/04/01»).

sqlQuery(channel = cn, query = "SELECT DateTime FROM large_table.txt WHERE DateTime = {d '2011-04-01'}", as.is = TRUE, stringsAsFactors = FALSE)

sqlQuery(channel = cn, query = "SELECT DateTime FROM large_table.txt WHERE DateTime = '2011/04/01'", as.is = TRUE, stringsAsFactors = FALSE)

Может кто-нибудь сказать мне, почему в наборе результатов нет наблюдений?

Любые предложения по улучшению моего соединения с базой данных или запроса очень приветствуются.Я предпочитаю использовать пакет RODBC вместо другого пакета запросов к базе данных, но при желании могу попробовать что-то новое.

Ответы [ 2 ]

3 голосов
/ 20 октября 2011

Я бы использовал для этого пакет 'memisc'.настройте импортеры spss.system.file () для ваших 3 файлов SPSS, поднабор, используя версию memisc для загрузки в R только тех переменных, которые необходимы, включая обработку пропущенных пользователем уровней.

Существуют некоторые странности в настройке файлов SPSS - довольно часто для файлов SPSS с числовыми переменными устанавливаются пользовательские пропуски, которые могут нуждаться в сортировке на конце R в интервале с соответствующими NA.,

2 голосов
/ 20 октября 2011

Вы можете сэкономить много хлопот, читая файл SPSS непосредственно в R.

library(foreign)
dat <- read.spss("filename.sav", to.data.frame=TRUE)

Это вернет data.frame, который вы можете проанализировать, используя все обычные инструменты R.

В качестве дополнительной выгоды у вас также будет текст анкеты в атрибутах вашего data.frame.

Подробнее см. ?read.spss.

...