You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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_single
    simple_reg <- lm(dv ~ iv_single, data = data)
    summary(simple_reg) # 查看回归结果
    
  • 多元线性回归:加入多个自变量iv1、iv2、iv3
    multiple_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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:21:52