如何解决RShiny:RandomForest 变量长度不同,仅在反应时
我对使用 R 闪亮非常陌生。我正在尝试创建一个应用程序,以帮助在预定数据集上创建 RandomForest 模型。
然而,我被困在模型的点上。计划是基于 UI 端的复选框和单选按钮创建模型。但是,该模型仅在这些元素不具有反应性时才起作用。
所以 rfmodel <- randomForest(ADJOE ~ TOR,data=df_train,mtry=5)
工作正常。
但是 rfmodel <- randomForest(input$outcome ~ TOR,mtry=5)
没有。
错误是:可变长度不同(为“TOR”找到)。
input$outcome 应该和 ADJOE 完全一样。作为测试,我还使用 input$outcome 变量对我也用来生成模型的 train_data 进行子集,使用以下代码
names <- colnames(df_valid)
testsubset <- names[names %in% input$outcome]
df_train <- df_train[testsubset]
效果很好。
我只是不知道在这种情况下 input$outcome 与 ADJOE 有何不同。
radioButtons("outcome","Outcome Variable",
choices = c("ADJOE","ADJDE","EFG_O","EFG_D","TOR","TORD","FTR","FTRD","X2P_O","X2P_D","X3P_O","X3P_D"),
selected = "ADJOE"),
我创建模型的代码是:
rfmodel <- randomForest(input$outcome ~ TOR,mtry=5)
使用精简版的大学篮球数据集:https://www.kaggle.com/andrewsundberg/college-basketball-dataset
使用
df <- csv[,c(5,6,8:11,14:19)]
我将不胜感激任何有关此问题的帮助。
解决方法
您可以使用 reformulate
。
rfmodel <- randomForest(reformulate('TOR',input$outcome),data=df_train,mtry=5)
,
我们可以使用paste
rfmodel <- randomForest(as.formula(paste0(input$outcome," ~ TOR")),data = df_train,mtry = 5)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。