我正在尝试使用列名和变量重要性对数据框进行子集化。我想训练一个模型,并在五个批次中测试所有变量的结果。我可以使用for loop
编写此脚本,但无法找到类似plyr
的解决方案。我还希望能够将所有结果存储在单个数据框或列表中,然后我可以使用它来分析结果。
这是我到目前为止的代码:
library('plyr')
library('FSelector')
data(iris)
wts.chisq.iris <- chi.squared(Species ~ ., data = iris) # chi sq importance
wts.chisq.iris$attr <- rownames(wts.chisq.iris) # add column with variable names
wts.chisq.iris <- wts.chisq.iris[with(wts.chisq.iris, order(-attr_importance)), ] # sort descending by variable importance
for (i in 1:4){
print(lm(Species ~., data = iris[ , c(wts.chisq.iris[1:i, 2], "Species")])) # store this in a list or df
}
感谢您的帮助。
编辑:我使用caret
读取了许多其他解决方案,但我仍然无法存储所有模型并运行数据框的特征子集(变量)。