首页 > 解决方案 > 如何以紧凑的形式描述回归交互项?

问题描述

我有回归量a, b, c,e_1并且e_2我想运行以下回归:

y ~ a + b + c + e_1 + e_2 + a.e_1 + a.e_2 + b.e_1 + b.e_2 + c.e_1 + c.e_2

每个e_1和都e_2必须与a和变量交互。bc

我实际上有 5 个e和 5 个其他变量。编写代码而不是单独编写代码的最快方法是a:e_1什么a:e_2

标签: rlinear-regression

解决方案


如果您知道公式中交互部分的变量分组名称,p如下q所示

p <- c("a","b","c")
q <- c("e_1","e_2")

您可以尝试以下代码使用as.formulaand生成整个公式paste0,即

f <- as.formula(paste0("y ~",paste0(c(p,q,do.call(paste, c(expand.grid(p,q),sep = ":"))),collapse = "+")))

这样

> f
y ~ a + b + c + e_1 + e_2 + a:e_1 + b:e_1 + c:e_1 + a:e_2 + b:e_2 + 
    c:e_2

> class(f)
[1] "formula"

推荐阅读