Мои данные отформатированы так:
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)
Конечно, мой реальный набор данных имеет более трех взаимодействий, но все переменные, с которыми мне нужно взаимодействовать, последовательно упорядочиваются в виде столбцов и имеют последовательные имена (например, c1, c2 и т. Д.).
Есть ли простой способ указать взаимодействие между disp
и c1
, скажем c100
?
Код для воспроизведения моего образца данных ниже:
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)