首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在带有预测器列表的数据帧上使用R的lm

在带有预测器列表的数据帧上使用R的lm
EN

Stack Overflow用户
提问于 2012-08-17 00:33:13
回答 2查看 34.8K关注 0票数 18

我有一个包含N+2列的数据帧。第一个是日期(主要用于稍后的绘图),第二个是一个变量,我要计算它对其余N列的响应。我在想一定有像这样的东西

df = data.frame(y = 1:10, x1 = runif(10), x2 = rnorm(10))
fit = lm(y~df[,2:3],data=df)

这不管用。我也尝试过,但失败了

fit = lm(y~sapply(colnames(df)[2:3],as.name),data=df)

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-17 00:37:11

使用公式表示法y ~ .指定要对数据集中的所有其他变量进行y回归。

df = data.frame(y = 1:10, x1 = runif(10), x2 = rnorm(10))
# fits a model using x1 and x2
fit <- lm(y ~ ., data = df) 
# Removes the column containing x1 so regression on x2 only
fit <- lm(y ~ ., data = df[, -2]) 
票数 40
EN

Stack Overflow用户

发布于 2019-06-11 03:09:02

我对R相当陌生,但我找到了另一种方法来对数据框中的命名列执行此操作。假设您想使用除x2列之外的所有列运行回归,那么您将编写:

df = data.frame(y = 1:10, x1 = runif(10), x2 = rnorm(10))
# Removes the column containing x2 so regression on x1 only
model <- lm(Y ~ . - x2, data = df)
# to remove more columns (assuming there were more columns in the data frame)
model <- lm(Y ~ . - x2 - x3 - x4, data = df)

其余的答案都很老了,所以它可能是一个新特性,但它相当整洁!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11991692

复制
相关文章

相似问题

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