微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

RShiny:RandomForest 变量长度不同,仅在反应时

如何解决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 举报,一经查实,本站将立刻删除。