Предупреждение / Ошибка при импорте .sav - PullRequest
9 голосов
/ 07 октября 2011

У меня есть две версии SPSS на работе. SPSS 11 работает на Windows XP и SPSS 20 работает на Linux. Обе копии SPSS работают нормально. Файлы, созданные в любой версии SPSS, открываются без происшествий в другой версии SPSS. И.Е. - Я могу создать файл .sav с SPSS 20 в Linux и открыть его на SPSS 11 в Windows без происшествий.

Но если я создаю файл .sav с помощью SPSS 20 и импортирую данные в R или PSPP (в Linux), я получаю кучу предупреждений. Похоже, что данные импортируются правильно, но меня беспокоят предупреждения. Я не вижу никаких предупреждений при импорте файла .sav из SPSS 11 или других файлов .sav, которые мне отправили. Многие аналитики в моей компании используют SPSS, поэтому я получил файлы SPSS из разных версий SPSS и никогда раньше не видел этого предупреждения. Предупреждающие сообщения почти идентичны между PSPP и R, что имеет смысл. AFAIK, они используют одни и те же базовые библиотеки для импорта данных. Это ошибка R:

Warning messages:
1: In read.spss("test.sav") :
test.sav: File-indicated value is different from internal value for at least one of  the three system values.  SYSMIS: indicated -1.79769e+308, expected -1.79769e+308; HIGHEST: 1.79769e+308, 1.79769e+308; LOWEST: -1.79769e+308, -1.79769e+308   

2: In read.spss("test.sav") :
test.sav: Unrecognized record type 7, subtype 18 encountered in system file

Файл .sav действительно прост. Он имеет две колонки, тупой и тупой. Оба являются целыми числами. Первые два содержат два значения 1,0. Второй ряд содержит два значения 2,0. Я могу предоставить файл по запросу (я не вижу способа загрузить его в SO). Если кто-то захочет увидеть фактический файл, напишите мне в личку, и я отправлю его вам.

dumb  dumber
1.0   1.0
2.0   2.0

Мысли? Кто-нибудь знает лучший способ сообщить об ошибке в R, не заживо зажив в списке рассылки? : -)

РЕДАКТИРОВАТЬ: я использовал термин «Ошибка» в строке заголовка. Я оставлю это, но я не должен был использовать это слово. Комментарии ниже верны, указывая на то, что сообщения, которые я вижу, являются предупреждениями, а не ошибками. Однако я чувствую, что это ясно изложено в основной части вопроса выше. Очевидно, что формат данных SPSS со временем изменился, и SPSS / IBM не удалось документировать эти изменения, что является причиной проблемы.

Ответы [ 2 ]

11 голосов
/ 08 октября 2011

Это не сообщение об ошибке. Это только предупреждение. SPSS отказывается документировать свои форматы файлов, поэтому у людей не было мотивации выслеживать путем обратного проектирования структуры новых «подтипов». Невозможно подать отчет об ошибке без того, чтобы его обжарить, потому что нет ошибки… кроме закрытого формата, и эту жалобу об ошибке следует подавать владельцам SPSS!

РЕДАКТИРОВАТЬ: R-Core является добровольческой группой и очень серьезно относится к своим обязанностям. Он прилагает значительные усилия для отслеживания всего, что влияет на стабильность систем или приводит к ошибочным вычислениям. Если бы вы хотели быть немного более уважительными по отношению к авторам R и предлагать возможность совместной работы в списке рассылки R-devel для определения решений этой проблемы без использования термина «ошибка», вы бы вызвали гораздо меньшую враждебность. Возможно, найдется кто-то, кто захочет узнать, можно ли исследовать простой файл .sav, например, тот, который вы создали, под шестнадцатеричным микроскопом, чтобы определить, какое бесконечное отрицательное значение принимается за другое бесконечное отрицательное значение. Большая часть R-Core не имеет рабочих копий SPSS.

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

http://svn.opendatafoundation.org/ddidext/org.opendatafoundation.data/references/pspp_source/sfm-read.c

Редактировать: 4/2015; Я видел недавнее дополнение к файлу справки ?read.spss, которое ссылается на pkg: memisc: «Другой пакет, также основанный на кодовой базе PSPP, доступен в пакете memisc: см. Его справку для spss.system.file». Я успешно использовал функцию этого пакета для файлов, созданных в более поздних версиях SPSS.

1 голос
/ 10 октября 2011

Формат файла SPSS публично не задокументирован и может измениться, но IBM SPSS предоставляет бесплатные библиотеки, которые могут читать и записывать формат файла SAV. Они маскируют любые изменения в формате. Вы можете получить их на веб-сайте Сообщества SPSS (наряду со многими другими бесплатными новостями, включая интеграцию SPSS с R). Зайдите на www.ibm.com/developerworks/spssdevcentral и посмотрите вокруг. Кстати, с 2000 года произошли существенные добавления / изменения в сохраненный файл, хотя данные ядра все еще могут быть прочитаны старыми версиями.

НТН, Джон Пек

...