不可否认,我是一个使用闪亮的新手,但是我有一个奇怪的错误,似乎是来自通过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
的用户输入上的简单条形图动态更新...
答案 0 :(得分:1)
空graphData
时,您的错误会被重现。我建议在if (nrow(graphData)==0) return()
之后添加graphData <- passData()
来解决您的问题。