我试图通过让用户选择在R闪亮界面中使用哪些参数来为模型动态做出输入。
旧的静态代码如下所示:
randomForest(factor(carb) ~ mpg + cyl + disp + hp, data = mtcars, ntree = 10, na.action = na.omit)
使用mtcars数据集。
对于新版本,〜之后使用的列将来自UI界面选项将是要使用的列名称的向量:
pars <- c('mpg', 'cyl', 'disp', 'hp')
如何更改randomForest
等式的语法,使其在pars的向量上运行,这样无论向量是什么,它都将自动运行在界面用户选择的列上。服务器端?
答案 0 :(得分:1)
as.formula()
可以为您提供帮助。
frm <- as.formula(paste("factor(carb) ~ ", paste(pars, collapse= "+")))
frm
factor(carb) ~ mpg + cyl + disp + hp
randomForest(frm, data = mtcars, ntree = 10, na.action = na.omit)
Call:
randomForest(formula = frm, data = mtcars, ntree = 10, na.action = na.omit)
Type of random forest: classification
Number of trees: 10
No. of variables tried at each split: 2
OOB estimate of error rate: 31.25%
Confusion matrix:
1 2 3 4 6 8 class.error
1 5 0 0 2 0 0 0.2857143
2 5 5 0 0 0 0 0.5000000
3 0 0 3 0 0 0 0.0000000
4 1 0 0 9 0 0 0.1000000
6 0 0 0 1 0 0 1.0000000
8 0 0 0 1 0 0 1.0000000