5

我发现了我认为 MicrosoftR 处理来自 SPSS 的 .sav 文件的元数据的方式中的一个错误。

以下是变量视图的摘要:

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

然而,valueInfoCodes 不会:

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)没有成功。使用rxDataSteprxImport不是不起作用。我相信错误出现在 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 存储库

4

0 回答 0