Будет просто, если мы сначала переименуем и перегруппируем столбцы, используя приведенное ниже, или что-то подобное
library(dplyr)
df <- iris %>%
select(Species, everything()) %>%
rename_all(~paste0("X", seq_along(.) - 1)) %>%
rename(Y = 1)
Затем мы могли бы использовать reformulate
подобно
reformulate(names(df)[-1], names(df)[1])
#Y ~ X1 + X2 + X3 + X4
Мы также можемиспользуйте paste0
для создания строки в соответствии с предпочтениями, а затем используйте as.formula
as.formula(paste0("Y ~ ", paste0(names(df)[-1], collapse = " + ")))
#Y ~ X1 + X2 + X3 + X4