Вероятно, не полный ответ, но это должно дать представление:
terms=c("X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10", "X16",
"X19")
lapply(10:6,function(x) {
formula <- as.formula(paste("result ~ ", paste0(terms[1:x],collapse="+")))
formula
})
Дает:
[[1]]
result ~ X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 + X16 + X19
<environment: 0x0000000016fbec50>
[[2]]
result ~ X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 + X16
<environment: 0x0000000016fc29a0>
[[3]]
result ~ X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10
<environment: 0x00000000170f44b0>
[[4]]
result ~ X3 + X4 + X5 + X6 + X7 + X8 + X9
<environment: 0x00000000170f8a98>
[[5]]
result ~ X3 + X4 + X5 + X6 + X7 + X8
<environment: 0x00000000170fd1d0>
Lapply будет повторять столько же, сколько диапазон (от 10 до 6), передавая его анонимной функции, этот х будет использоваться для выбора необходимых терминов.
Идея состоит в том, чтобы построить ваши формулы из необходимых терминов, при этом каждый раз удаляя их по одному, вставляя их как показано в документации ?as.formula
и получая формулу. Остальной код можно использовать как есть, результирующий список будет содержат таблицы вместо формул в этом примере.