首页 文章

如何从SPSS可移植文件中正确导入缺失值?

提问于
浏览
1

如其他问题所述,将SPSS数据集导入R的最佳方法是首先将SPSS文件导出为“便携式SPSS”格式,然后使用memisc,如下所示:

library(memisc) 
mydata <- as.data.set(spss.portable.file("myspss.por"))

但我的问题是NA被编码为文本(即使我在SPSS中指定了NA值)

我的解决方案是为每个变量执行此操作:

mydata$v1[mydata$v1 == "NA"] <- NA

但我有50多个变量......¿你知道更好的方法吗?或者¿你知道我在导入时做错了什么吗?

3 回答

  • 1

    我发现了一个适合我的解决方案:

    library(memisc)
    mydata <- as.data.set(spss.portable.file("myspssdata.por"))
    mydata <- as.data.frame(mydata)
    

    当data.set转换为data.frame时,所有NA值都是正确的 .

    我还尝试直接获取data.frame:

    mydata <- as.data.frame(spss.portable.file("myspssdata.por"))
    

    但是通过这种方式,我获得了一个带有0个观测值的data.frame . 因此,似乎必须先通过data.set .

    谢谢你的回答 .

  • 2

    做就是了

    is.na(mydata) <- mydata == "NA"
    

    并且所有列中的所有 "NA" 都被实际的 NA 替换 .

  • 0

    我使用 Hmisc::spss.get 来读取SPSS并正确导入NA值:

    library(Hmisc)
    r <- spss.get(survey_results_file, use.value.labels=T)
    > str(r[273,"Q5A8"])
     Factor w/ 4 levels "1 Not Important",..: NA
    > is.na(r[273,"Q5A8"])
    [1] TRUE
    

相关问题