Я совсем новичок, так что это может быть не лучшим способом.Возможно, вам потребуется настроить цикл for с помощью имя_бавки, поскольку в моем примере df - это ваше подмножество для одной группы культур.
df <- data.frame(intercrop = c("A","B","C","A","B","C"),
erosion_c = c("A","D","C","A","B","C"),
purchased_seed = c("A","B","D","F","E","C"),
inorg_pest = c("A","B","C","A","B","C"),
org_pest = c("A","B","A","A","B","B"),
landscape = c("A","A","A","A","A","A"),
fert = c("A","B","C","A","B","C"),
inorgfert = c("A","B","C","A","B","C")
)
yo <- sapply(df, levels)
hi <- as.data.frame(c(NA))
for(i in 1:length(yo)){
hi[i] <- length(yo[[i]])
names(hi)[i] <- names(df[i])
}
hi <- subset(as.data.frame(t(hi)), V1 >= 2)
formu <- row.names(hi)
formu <- as.formula(paste("value ~ ",gsub('.{3}$', '', paste( unlist(paste(formu,"+ ")), collapse=''))))