我正在尝试构建一个Shiny应用程序,该应用程序在不同的选项卡中显示随机林的输出。在这里,我只为部分依赖图创建一个标签,以显示我收到的错误。下面是全局,服务器和ui文件的代码。
global.R
library(shiny)
setwd("C:/Users/rcaldwe4/Documents/Monthly Topic/Stackoverflow")
df <- data.frame(x1=sample(1:100,10000,replace=T),
x2=sample(1:100,10000,replace=T),
x3=sample(1:100,10000,replace=T),
y=as.factor(sample(0:1,10000,replace=T)))
train_x <- df[1:5000,-4]
train_y <- df[1:5000,4]
train1 <- data.frame(train_x,y=train_y)
test_x <- df[5001:10000,-4]
test_y <- df[5001:10000,4]
server.R
library(shiny)
library(randomForest)
library(AUC)
library(rpart)
library(lift)
#Define server logic required to output Random Forest
shinyServer(function(input,output){
rfInput <- reactive({
randomForest(x=train_x,y=train_y,importance=T,ntree=input$trees,keep.forest = T)
})
output$partDep <- renderPlot({
partialPlot(x=rfInput(), pred.data=train1, x.var=input$select_var, which.class=1)
})
})
ui.R
library(shiny)
shinyUI(
fluidPage(
titlePanel("Random Forest"),
sidebarLayout(
sidebarPanel(
sliderInput("trees",
"Number of trees:",
min=0,
max=1000,
value=100,
step=50),
selectInput("select_var",
label = h4("Select variable for partial dependence plot"),
choices = names(train1)[1:3],
selected = names(train1)[1])
),
mainPanel(
tabsetPanel(
tabPanel("Dependence",
plotOutput("partDep"))
)
)
)
))
要构建的树数量的滑块输入工作正常。但是,当我尝试让用户为部分依赖图选择变量时,我收到此错误:
Warning: Error in eval: object 'input' not found
我不清楚问题是什么&#39;输入&#39;。我想知道使用&#39;输入&#39;是否存在问题。使用partialPlot函数。任何建议都会很棒。
答案 0 :(得分:1)
这是 GROUP_CONCAT(CASE WHEN question = 'How old' THEN answer ELSE NULL END) AS `How Old`,
GROUP_CONCAT(CASE WHEN question = 'What like' THEN IF(answer='Other', input, answer) ELSE NULL END) AS `What like`,
GROUP_CONCAT(CASE WHEN question = 'City' THEN answer ELSE NULL END) AS `City`,
GROUP_CONCAT(CASE WHEN question = 'Name' THEN IF(answer='Other', input, NULL) ELSE NULL END) AS `Name`
的问题。这在另一个问题here中得到了解决。唯一的解释是一些绘图函数使用了一些非标准的评估。
如果您将partialPlot
中的partDep
部分更改为以下内容,则可以:
server.R