【发布时间】:2019-10-25 14:21:58
【问题描述】:
我的数据格式如下:
mpg disp c1 c2 c3
21.0 160.0 0 0 0
21.0 160.0 0 0 0
22.8 108.0 1 0 0
21.4 258.0 1 0 0
18.7 360.0 0 1 0
18.1 225.0 1 0 0
我想运行这样的线性模型,其中c1 到c3 都与另一个解释变量disp 相互作用:
lm(mpg ~ disp:c1
+ disp:c2
+ disp:c3, df)
当然,我的真实数据集有不止 3 个交互,但我需要交互的所有变量都按列顺序排列,并且都按顺序命名(例如 c1、c2 等)。
有没有一种简单的方法可以通过说c100 来指定disp 和c1 之间的交互?
复制我的示例数据集的代码如下:
library(dplyr)
df <- mtcars
df <- df %>% mutate(c = factor(carb))
dummies <- model.matrix(data = df, ~ c + 0)
dummies <- as_data_frame(dummies)
df <- cbind(df, dummies)
df <- df %>% select(mpg, disp, c1:c3)
head(df)
【问题讨论】: