Без дополнительной информации от вас о структурах данных будет сложно ответить на этот вопрос.
Предоставленный вами код должен работать, что говорит о том, что вы, возможно, допустили какую-то простую опечатку. Чтобы подтвердить это, давайте сделаем быстрый воспроизводимый пример и увидим, что трехсторонние взаимодействия действительно генерируются из аналогичного кода из встроенного набора данных:
Нет взаимодействий:
> str(colnames(model.matrix(mpg ~ ., mtcars)))
chr [1:11] "(Intercept)" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear" "carb"
Двустороннее взаимодействие:
> str(colnames(model.matrix(mpg ~ .^2, mtcars)))
chr [1:56] "(Intercept)" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear" "carb" "cyl:disp" ...
Трехстороннее взаимодействие:
> str(colnames(model.matrix(mpg ~ .^3, mtcars)))
chr [1:176] "(Intercept)" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear" "carb" "cyl:disp" ...
Они на самом деле там?
> tail(colnames(model.matrix(mpg ~ .^3, mtcars)))
[1] "qsec:am:carb" "qsec:gear:carb" "vs:am:gear" "vs:am:carb" "vs:gear:carb" "am:gear:carb"
Да, да, они есть. Итак, ваш код должен работать. Может быть, вы просто что-то не так понимаете?
person
Thomas
schedule
02.07.2018