我正在制作我的第一个Shiny应用程序,尝试创建一个响应式条形图和表格,用户可以在其中选择要显示的数据框列,但是,当我运行应用程序时
错误:需要出现有限'xlim'值
我的数据不包含NA,它是一个数据帧,我可以使用普通的r命令构建非反应图。
我的代码看起来像这样
library(shiny)
ui <- fluidPage(
plotOutput(outputId = "bar_1"),
tableOutput(outputId = "table_1"),
selectInput("variable", "Select variable", c("colA"="colA", "colB"="colB", "colC"="Col C"))
)
server <- function(input, output) {
output$bar_1<-renderPlot(barplot(table(Book1$'input$variable')))
output$table1<-renderTable(table(Book1$'input$variable'))
}
shinyApp(ui = ui, server = server)
控制台显示
Warning in min(w.l) : no non-missing arguments to min; returning Inf
Warning in max(w.r) : no non-missing arguments to max; returning -Inf
Warning in min(x) : no non-missing arguments to min; returning Inf
Warning in max(x) : no non-missing arguments to max; returning -Inf
Warning: Error in plot.window: need finite 'xlim' values
Stack trace (innermost first):
79: plot.window
78: barplot.default
77: barplot
76: renderPlot
68: output$bar_1
1: runApp
感谢您的帮助!
答案 0 :(得分:0)
对于最小可重复的示例,同样具有dput(head(Book1))
的输出也是有帮助的。
这样就更容易提供帮助
但在你的情况下,它似乎是列的索引。尝试以下
server <- function(input, output) {
output$bar_1<-renderPlot(barplot(table(Book1[input$variable])))
output$table1<-renderTable(table(Book1[input$variable]))
}
或更高效
server <- function(input, output) {
current.data <- table(Book1[input$variable])
output$bar_1<-renderPlot(barplot(current.data))
output$table1<-renderTable(current.data)
}