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

R语言lm线性回归中单列变量在结果表中拆分为多项的原因问询

问题原因

你指定的number_of_peaksaropos1变量被R自动识别为分类变量(因子/字符类型),而非连续数值变量:

  • lm()函数对分类变量默认会生成哑变量(虚拟变量)进行回归估计,每个变量后缀的数字1/2/3对应原变量的不同取值,因此会在结果中拆分展示为多个独立条目
  • 该问题源自你构造Results_aropos1数据集的步骤:你用c(peaks, id, number_of_peaks)拼接变量时,如果id列为字符型,整行拼接结果会被强制转换为字符型,后续转换为数据框时默认被识别为因子类型,即使列内存储的是数字内容。

解决方法

  1. 回归执行前将目标变量强制转换为数值型即可解决,代码如下:
# 先转字符再转数值,避免因子类型直接转换为level序号的问题
totaldf1moodpeaks$number_of_peaksaropos1 <- as.numeric(as.character(totaldf1moodpeaks$number_of_peaksaropos1))
# 转换后可执行下方代码验证类型,输出为num即为数值型
str(totaldf1moodpeaks$number_of_peaksaropos1)
  1. 也可以在构造Results_aropos1数据集时单独指定number_of_peaksaropos1列为数值类型,从根源避免类型转换错误。

转换完成后重新执行回归和stargazer输出,该变量就会展示为单个条目。

内容的提问来源于stack exchange,提问作者Tobi Ahnfeld Vdo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:45:05