R语言加载SPSS文件报错求助:嵌入空值与不完整行问题
解决SPSS数据读取与回归分析的问题
Hi Silvia, 我来帮你理清问题并给出解决方案~
为什么会出现警告?
你遇到的警告完全是因为用错了文件读取函数:
read.delim()是专门用来读取文本分隔文件(比如TSV、CSV这类纯文本格式)的工具- 而你的
.sav文件是SPSS的二进制数据文件,用文本读取函数去解析二进制内容,自然会出现「嵌入空值」「不完整行」这类错误提示
你其实已经成功加载数据了!
你之前通过foreign包的代码已经完美把SPSS数据导入R中:
library(foreign) data <- read.spss("new long an.sav", use.value.labels=TRUE, to.data.frame=TRUE)
这里的data就是你需要的分析数据集,完全不需要再用read.delim()重复读取。
直接用已加载的数据做回归分析
基于你要做的三种回归,给你举几个示例代码(记得替换成你自己的变量名):
- 简单线性回归:假设因变量是
dv,自变量是iv_singlesimple_reg <- lm(dv ~ iv_single, data = data) summary(simple_reg) # 查看回归结果 - 多元线性回归:加入多个自变量
iv1、iv2、iv3multiple_reg <- lm(dv ~ iv1 + iv2 + iv3, data = data) summary(multiple_reg) - Logistic回归:适用于二分类因变量(比如
binary_dv,取值为0/1或是/否)logistic_reg <- glm(binary_dv ~ iv1 + iv2, data = data, family = binomial) summary(logistic_reg)
额外小建议
如果foreign包在处理标签、编码时出现小问题,推荐你试试更现代的haven包(现在是读取SPSS数据的主流工具):
# 先安装(第一次用需要安装) install.packages("haven") # 加载并读取数据 library(haven) data <- read_sav("new long an.sav")
haven会保留SPSS的变量标签、值标签,返回的是更便于tidy分析的数据框,对你后续做回归也更友好。
内容的提问来源于stack exchange,提问作者PsychSilvia
相关产品推荐
相关产品推荐

