我有一个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
我将没有值标签,我无法正确导出文件
答案 0 :(得分:1)
我不知道为什么,但是我无法安装“外国”软件包。
这就是我所做的,是将数据集从SPSS导入到R(通过Excel):
现在,您在R中有一个带有值标签的数据集。
答案 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")
其他位需要各种lapply
和sapply
函数才能将它们取出。我的脚本很长,所以我不会在这里分享。如果您使用read.spss(sav, to.data.frame = TRUE)
阅读数据,则可以获得:
VariableLabels <- unname(attr(sav, "variable.labels"))