使用ggplot2和闪亮的应用程序发生奇怪的环境错误

时间:2015-01-08 19:25:35

标签: r

不可否认,我是一个使用闪亮的新手,但是我有一个奇怪的错误,似乎是来自通过SERVER.R文件调用的ggplot。

错误为Error in exists(name, envir = env, mode = mode) : argument "env" is missing, with no default

我做了一些搜索,发现大多数错误都被误认为是错误的ggplot规范......但我找不到错误。

这是我的UI.R文件:

library(shiny)
shinyUI(pageWithSidebar( 
headerPanel("Applications"),
sidebarPanel(
dateRangeInput('dateRange',
             label = 'Date range input: yyyy-mm-dd',
             start = Sys.Date() - 6, end = Sys.Date()
)
),
mainPanel(plotOutput("monthGraph"))
))

这是我的SERVER.R文件:

library("shiny")
library("RMySQL")
library("ggplot2")
#con <- dbConnect(MySQL(), host="***", port= 3306, user="***", password = "****", dbname="data")
#query  <- dbGetQuery(con, "select date(datetime_var) as date , value
#from table
#where value= 1")

query <- data.frame(date=seq(as.Date("2014-01-01"), as.Date("2014-01-07"), 1), value=c(1:7))


shinyServer(function(input, output, session) { 

passData <- reactive({
query <- query[query$date %in% seq.Date(input$dateRange[1], input$dateRange[2], by="days"),]
query
})


output$monthGraph <- renderPlot({



graphData <- passData()

theGraph <- ggplot(graphData, 
               aes(x=date)) +
               geom_bar(stat="bin") +
               ylab("Count")

print(theGraph)
})
})

因此,我尝试创建一个闪亮的应用,根据dateRange的用户输入上的简单条形图动态更新...

1 个答案:

答案 0 :(得分:1)

graphData时,您的错误会被重现。我建议在if (nrow(graphData)==0) return() 之后添加graphData <- passData()来解决您的问题。