在R中更改结果变量来运行多个回归

时间:2019-10-09 21:24:06

标签: r regression linear-regression tidyverse

我有一个数据帧(df),如下所示:

condition  dv1  dv2  dv3
1          2    4    3
2          5    7    4
3          7    1    2

为了同时运行多个回归,我使用了如下代码:

dfdv <- df[,2:4]  
output <- lm(as.matrix(dfdv) ~ condition, data = df)
summary(output)

这给了我dv1,dv2和dv3的所有dv〜条件回归。这些是输出中给出的回归:

dv1 ~ condition
dv2 ~ condition
dv3 ~ condition

但是,我现在想控制回归中的不同条件。具体来说,我想找出一种有效运行以下回归的方法。

dv1 ~ condition + dv1
dv1 ~ condition + dv2
dv1 ~ condition + dv3

我使用与上面的工作原理相似的原理尝试了以下工作,但没有成功。

dfdv <- df[,2:4]  
output2 <- lm(dv1 ~ condition + as.matrix(dfdv), data = df)
summary(output2)

它给了我一次使用所有dv回归的回归,而不是我想要的回归。这就是它给我的:

dv1 ~ condition + dv1 + dv2 + dv3

有人知道我如何使用简单的代码执行这些回归分析吗?我的实际数据集中比该示例中包含的还要多。

1 个答案:

答案 0 :(得分:0)

为此,我们可以使用Product Sales AsString Apple $1,245.456 1235.46 << Notice Rounded and $ and , not an issue Banana 567.54 567.54 Pear 43.435 43.44 Peach 432.32 432.32 Fig 32 32.00 << Notice two decimals 。循环浏览“ dv”列名称,通过指定响应和因变量使用lapply创建公式,然后应用reformulate

lm

或使用v1 <- grep('^dv\\d+$", names(df), value = TRUE) lapply(v1, function(dv) lm(reformulate(c(dv, "condition"), dv), data = df))

创建公式
paste