Скажем, мы работаем с этим нелепым примером:
DF <- data.frame(Class=1:10,A=1:10,B=1:10,C=1:10)
Тогда вы получите имена столбцов
Cols <- names(DF)
Cols <- Cols[! Cols %in% "Class"]
n <- length(Cols)
Вы строите все возможные комбинации
id <- unlist(
lapply(1:n,
function(i)combn(1:n,i,simplify=FALSE)
)
,recursive=FALSE)
Вы вставляете их в формулы
Formulas <- sapply(id,function(i)
paste("Class~",paste(Cols[i],collapse="+"))
)
И вы зацикливаетесь на них, чтобы применить модели.
lapply(Formulas,function(i)
lm(as.formula(i),data=DF))
Будьте осторожны: если у вас больше, чем несколько столбцов, это быстро станет очень тяжелым для памяти и приведет к буквально тысячам моделей. У вас есть 2 ^ n - 1 разных моделей, где n равно количеству столбцов.
Удостоверьтесь, что это именно то, что вам нужно, в общем, такое сравнение моделей настоятельно не рекомендуется. Забудьте о любом виде вывода, когда вы делаете это.