Ошибка округления в переменной информации из RxSpssData
Я обнаружил, как мне кажется, ошибку в том, как MicrosoftR обрабатывает метаданные из файлов.sav из SPSS.
Вот краткий обзор вида переменных:
ColumnA: 1 - Yes, 2 - No
ColumnB: 0.33 - Yes, 0.5 - Maybe, 0.66 - No, 0.99 - Why not, 1.00 - Yes, for sure.
ColumnC: A - Yes, B - No
Мой код:
library(RevoScaleR)
df <- RxSpssData(
"RoundingTest.sav",
stringsAsFactors = FALSE,
labelsAsInfo = TRUE,
labelsAsLevels = TRUE,
mapMissingCodes = "none"
)
test = rxImport(df)
Данные читаются в порядке:
ColumnA ColumnB ColumnC Var0001
1 Yes 0.33 Yes NA
2 No 0.50 Yes NA
3 Yes 0.66 No NA
Значение InfoCodes, однако, не:
attr(test$ColumnA, ".rxValueInfoCodes") # NULL
attr(test$ColumnB, ".rxValueInfoCodes") # "0" "0" "0" "0" "1"
attr(test$ColumnC, ".rxValueInfoCodes") # NULL
Кажется, что он использует какую-то функцию пола для метаданных в числовых столбцах, прежде чем преобразовывать их в символьные строки.
Я пытался использовать options(scipen = 12)
а также rxOptions(numDigits = 12)
без успеха. С помощью rxDataStep
вместо rxImport
не работает Я считаю, что ошибка находится где-то в функции RxSpssData().
- Кто-нибудь испытывал это с RxSpssData или любым другим типом файла?
- Есть ли обходной путь?
- Есть ли официальный способ сообщить об этом в Microsoft, если это настоящая ошибка?
Спасибо!
Кроме того, моя сессия информация:
R version 3.3.2 (2016-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
РЕДАКТИРОВАТЬ: добавлен образец SAV-файла в репозиторий GitHub здесь.