首页 文章

使用值标签在R中导入spss文件的最佳方法是什么?

提问于
浏览
-1

我有一个spss文件,其中包含变量和值标签 . 我看到了具有 read.spss 功能的外包:

data <- read.spss("2017.sav", to.data.frame = TRUE, use.value.labels = TRUE)

如果我使用 use.value.labels = TRUE ,所有字符串更改为因子变量,我不想要它,因为它们不是因子全部 .

我找到了一个解决方案,但我不知道这是否是最好的方法

1º首先读取带有上一句的spss文件
2º选择哪些变量不是因子,并将其更改为字符串:

cols <- c("x", "ab")

data[cols] <- lapply(data[cols], as.character)

如果我不使用 use.value.labels = TRUE 我将没有值标签,我无法正确导出文件

1 回答

  • 0

    您也可以使用 memisc 包:

    sav <- spss.system.file("file.sav")
    df <- as.data.set(sav)
    

    我的公司经常处理SAV文件,我们分别提取元数据 . 使用 foreign 包,您可以通过几种不同的方式获取元数据(在您加载文件后):

    data.label.table <- attr(sav, "label.table")
    missings <- attr(sav, "missings")
    

    其他位需要各种 lapplysapply 函数才能将它们取出 . 我的脚本很长,所以我不会在这里分享 . 如果您使用 read.spss(sav, to.data.frame = TRUE) 读取数据,则可以获得:

    VariableLabels <- unname(attr(sav, "variable.labels"))
    

相关问题