R 编程中 lm() 中的因变量类型无效
Invalid type for the dependent variable in lm() in R programming
这是一个 R 问题,不是统计问题。
我正在尝试在 R 中对一组 20 个自变量和 1 个因变量执行多元线性回归。 20 个自变量在一个 csv 文件中,1 个因变量在另一个 csv 文件中。每个文件中的每一行对应于一天的一次测量。
我已经成功地使用 read.csv(...) 将 20 个独立变量导入到一个名为 "predictors" 的(变量?)中。然后,我再次使用 read.csv(...) 将相关测量值导入到名为 "dependent".
的(变量?)中
但是当我使用 lm(dependent~X1+X2+X3+X4+X5+X6+X7+X8+X9+X10+X11+X12+X13+X14+X15+X16+X17+X18+X19 +X20)
(注意:X_1、...、X20 是该 csv 文件中预测变量列的 headers)
我收到错误:
Error in model.frame.default(formula = dependent ~ X1 + X2 + X3 + X4 + X5 + :
invalid type (list) for variable 'dependent'
我不明白哪里出了问题?
预测文件看起来像(但最多 X20)
依赖的 csv 文件看起来像
让我们为 df 获取一些随机数据:
df<-replicate(5,rnorm(20))
names<-paste0('X',1:5)
colnames(df)<-names
dependent已经在评论中给出了,所以我们可以使用cbind
创建一个dataframe:
newDf<-cbind(dependent,df)
head(newDf)
# dependent X1 X2 X3 X4 X5
# 1 0.49295341 -1.728304515 0.9902622 0.6164557 0.904435464 -0.65801021
# 2 0.04331689 0.641830028 2.3829267 0.6165678 0.002691661 0.85520221
# 3 0.53106346 -1.529310531 0.6644159 -1.6921015 -1.176692158 1.15293623
# 4 0.06983530 0.001683688 0.2073812 0.3687421 -1.318220727 0.27627456
# 5 0.74574779 0.250247821 -2.2106331 0.9678592 -0.592997366 0.14410466
# 6 0.56349179 0.563867390 2.6917140 1.2765787 0.797380501 -0.07562508
然后我们可以运行回归:
lm(dependent~.,newDf) # . selects all the other columns of newDf
# Call:
# lm(formula = dependent ~ ., data = newDf)
# Coefficients:
# (Intercept) X1 X2 X3 X4 X5
# 0.50522 -0.09975 -0.03040 0.06431 -0.00398 -0.09596
这是一个 R 问题,不是统计问题。
我正在尝试在 R 中对一组 20 个自变量和 1 个因变量执行多元线性回归。 20 个自变量在一个 csv 文件中,1 个因变量在另一个 csv 文件中。每个文件中的每一行对应于一天的一次测量。
我已经成功地使用 read.csv(...) 将 20 个独立变量导入到一个名为 "predictors" 的(变量?)中。然后,我再次使用 read.csv(...) 将相关测量值导入到名为 "dependent".
的(变量?)中但是当我使用 lm(dependent~X1+X2+X3+X4+X5+X6+X7+X8+X9+X10+X11+X12+X13+X14+X15+X16+X17+X18+X19 +X20)
(注意:X_1、...、X20 是该 csv 文件中预测变量列的 headers)
我收到错误:
Error in model.frame.default(formula = dependent ~ X1 + X2 + X3 + X4 + X5 + : invalid type (list) for variable 'dependent'
我不明白哪里出了问题?
预测文件看起来像(但最多 X20)
依赖的 csv 文件看起来像
让我们为 df 获取一些随机数据:
df<-replicate(5,rnorm(20))
names<-paste0('X',1:5)
colnames(df)<-names
dependent已经在评论中给出了,所以我们可以使用cbind
创建一个dataframe:
newDf<-cbind(dependent,df)
head(newDf)
# dependent X1 X2 X3 X4 X5
# 1 0.49295341 -1.728304515 0.9902622 0.6164557 0.904435464 -0.65801021
# 2 0.04331689 0.641830028 2.3829267 0.6165678 0.002691661 0.85520221
# 3 0.53106346 -1.529310531 0.6644159 -1.6921015 -1.176692158 1.15293623
# 4 0.06983530 0.001683688 0.2073812 0.3687421 -1.318220727 0.27627456
# 5 0.74574779 0.250247821 -2.2106331 0.9678592 -0.592997366 0.14410466
# 6 0.56349179 0.563867390 2.6917140 1.2765787 0.797380501 -0.07562508
然后我们可以运行回归:
lm(dependent~.,newDf) # . selects all the other columns of newDf
# Call:
# lm(formula = dependent ~ ., data = newDf)
# Coefficients:
# (Intercept) X1 X2 X3 X4 X5
# 0.50522 -0.09975 -0.03040 0.06431 -0.00398 -0.09596