将交互项拟合到每个前面的变量

fit an interaction term to each preceding variable

R 中是否有一种方法可以将交互项拟合到模型规范中的每个前面的变量? 我想以更简洁的方式执行以下操作。


data("mtcars")
head(mtcars)
mod1<-lm(mpg~ cyl+disp+hp+wt+cyl:wt+disp:wt+hp:wt, data=mtcars)
summary(mod1)

我认为这应该可以解决问题。

mod1<-lm(mpg~ (cyl+disp+hp+wt)^2, data=mtcars)

类似于算术

f1 <- lm(mpg ~ cyl + disp + hp + wt + cyl:wt + disp:wt + hp:wt, data=mtcars)
f2 <- lm(mpg ~ (cyl + disp + hp)*wt, data=mtcars)

stopifnot(all.equal(f1$coe, f2$coe))