首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中导入带有值标签的spss文件的最佳方式是什么?

在R中导入带有值标签的spss文件的最佳方式是什么?
EN

Stack Overflow用户
提问于 2017-01-16 01:12:24
回答 2查看 7.2K关注 0票数 0

我有一个包含变量和值标签的spss文件。我看到了带有read.spss函数的国外包:

代码语言:javascript
复制
data <- read.spss("2017.sav", to.data.frame = TRUE, use.value.labels = TRUE)

如果我使用use.value.labels = TRUE,所有的字符串都会变成因子变量,我不想要它,因为它们不是因子变量。

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

1º先用上一句话读取spss文件

2º选择哪些变量不是因子,并使用以下命令将其更改为字符串:

代码语言:javascript
复制
cols <- c("x", "ab")

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

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

EN

回答 2

Stack Overflow用户

发布于 2020-06-04 13:09:45

我不知道为什么,但是我不能安装一个“外来”包。

下面是我将数据集从SPSS导入R(通过Excel)的方法:

  1. 在SPSS中打开您的数据。
  2. 将数据集从SPSS导出到Excel,但请确保选择最底部的“保存定义的值标签而不是数据值”选项。
  3. 打开R.
  4. 从Excel导入数据集。

现在,您在R中有了一个带有值标签的数据集。

票数 2
EN

Stack Overflow用户

发布于 2017-01-16 01:43:55

您还可以使用memisc包:

代码语言:javascript
复制
sav <- spss.system.file("file.sav")
df <- as.data.set(sav)

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

代码语言:javascript
复制
data.label.table <- attr(sav, "label.table")
missings <- attr(sav, "missings")

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

代码语言:javascript
复制
VariableLabels <- unname(attr(sav, "variable.labels"))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41663908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档