我终于找到了如何让情节对用户输入作出反应......不幸的是,用户需要选择年份范围,高尔夫球手和球场。我希望他们只能按年和高尔夫球手进行过滤,或者只需要年份和球场进行过滤即可。我如何修复我的代码,以便即使没有填写某些内容也会返回该图?任何帮助将不胜感激,因为我还是很新的!谢谢!
server <- function(input, output, session) {
updateSelectizeInput(session, inputId = 'golfer', choices = dkDatabase$Golfer, selected = "Woodland, Gary", server = TRUE)
updateSelectizeInput(session, inputId = 'course', choices = dkDatabase$Course, server = TRUE)
output$points <- renderPlot({
dkDatabase %>%
filter(dkDatabase$Year >= input$year[1],
dkDatabase$Year <= input$year[2],
dkDatabase$Golfer == input$golfer,
dkDatabase$Course == input$course) %>%
ggplot(aes(dkPoints)) + geom_histogram(fill="green", colour = "black") +
xlab("DK Points") +
ylab("Events")
})
}
答案 0 :(得分:0)
如果没有看到更多的代码,我无法真正测试它,但它应该可以进行一些小的修改。
在ui代码中,设置默认选择输入:
selectInput(..., Choose = '')
然后在你的服务器端代码中添加一个if语句(如果你要使用单引号,双引号或者对所有这些语句进行空值测试,并且1应该有效,则无法回想起我的头脑。)< / p>
if (input$golfer == '') {
dkDatabase %>%
filter(dkDatabase$Year >= input$year[1],
dkDatabase$Year <= input$year[2],
dkDatabase$Course == input$course)
}
else if (input$Course == ''){
dkDatabase %>%
filter(dkDatabase$Year >= input$year[1],
dkDatabase$Year <= input$year[2],
dkDatabase$Golfer == input$golfer)
}
else {
dkDatabase %>%
filter(dkDatabase$Year >= input$year[1],
dkDatabase$Year <= input$year[2],
dkDatabase$Golfer == input$golfer,
dkDatabase$Course == input$course)
}
output$points <- renderPlot({
ggplot(aes(dkPoints())) + geom_histogram(fill="green", colour = "black") +
xlab("DK Points") +
ylab("Events")
})
如果没有在上面输入年份,我没有说明要做什么,但我要做的是自动设置开始和结束日期以包含所有数据,然后用户可以根据需要进行更改。