2016-05-25 70 views
0

我在Windows 10 64bit上使用R 3.2.3到RStudio版本0.99.491 ...我創建了一個ggplot2閃亮的應用程序,它顯示氣泡圖。我不明白,我得到除了事實上,它是有關輸入錯誤消息:如何在shiny/ggplot2應用上的一個selectInput中使用多個data.frame對象

Warning in validateSelected(selected, choices, inputId) : 
    'selected' must be the values instead of names of 'choices' for the input 'month' 

    Warning: Error in ..stacktraceon..: object 'input' not found 
    Stack trace (innermost first): 

    1: shiny::runApp 
    Error in ..stacktraceon..({ : object 'input' not found 

這裏是我使用的data。下面是代碼

UI

library(shiny) 
library(leaflet) 

vars = c("april" = "April","may" = "May","june" = "June","july" = "July") 

shinyUI(pageWithSidebar( 
sidebarPanel(
    selectInput("month", "Month", vars, selected = "april")), 
mainPanel(plotOutput("plot") 

))) 

SEVER

library(shiny) 
library(leaflet) 



melt_april <- melt(april) 
names(april) = c('departure', 'stop', 'frequency') 
melt_may <- melt(may) 
names(may) = c('departure', 'stop', 'frequency') 
melt_june <- melt(june) 
names(june) = c('departure', 'stop', 'frequency') 
melt_july <- melt(july) 
names(july) = c('departure', 'stop', 'frequency') 

monthBy <- input$month 




shinyServer(function(input, output){ 
observe({ 
    output$plot <- renderPlot({ 


    p <- ggplot(monthBy, aes(x = departure, y =stop, size = frequency, color = frequency)) + 
     geom_point()+ 
     scale_colour_gradient(low="white",high="orange")+ 

    print(p) 

) 
}) 

})

回答

0

好吧,我想你可能需要

monthBy <- input$month 

shinyServer函數內。

+0

非常感謝!該應用程序沒有崩潰!這是進步。它給了我一個錯誤,而不是劇情:'ggplot2不知道如何處理類字符的數據'但它是否意味着像data.frame這樣的類? –

+0

是的!輸入$ month返回一個字符串。我認爲你想要那個字符串的名稱的數據框?你可以這樣做一些尷尬的事情:'eval(as.name(monthBy))'來獲取實際的數據框架,但我認爲可能有更好的方法。 –

+0

閃亮是棘手的調試。確保你理解了你想要放入應用程序的所有代碼,並且在開始投入Shiny之前,它都會運行。 –

相關問題