【发布时间】:2013-09-24 09:07:42
【问题描述】:
我正在尝试运行闪亮并在其中一个 renderPlot 中使用 ddply 定义数据框,并且因为我使用函数的输入变量之一,所以我需要使用“here”函数:
Dates<-ddply(rawData.Agg,.(ProdID,LD_TSq),here(summarise),
FOD=min(Time_Seq),
FOD_ind=which.min(Time_Seq),
...
)
稍后在函数中我使用这些值来绘制一些 ggplots
print( ggplot(rawData.Agg,aes(Time_Seq,Stores)) +
geom_vline(xintercept=as.numeric(as.character(Dates$LD_TSq[1])), linetype="solid",colour="cornflowerblue", size=2 ) +
...
)
这可以正常工作并可以正常访问 Dates 数据框。但是我想添加一个 geom_rect 并使用:
geom_rect(aes(xmin=Dates$date_5[1], xmax=Dates$date_3[1], ymin=0, ymax=Inf),fill = "aquamarine",alpha=0.01)
我在以下的 rstudio 终端中收到错误:
Listening on port 8100
Error in eval(expr, envir, enclos) : object 'Dates' not found
我认为这是由于 Dates 是本地数据框。我尝试过定义环境,但无法让它工作,谁能告诉我如何让它工作?
编辑: 这是一些应该使用 mtcars 数据集复制问题的代码。
服务器.R:
library(shiny)
library(datasets)
library(ggplot2)
library(plyr)
mpgData <- mtcars
shinyServer(function(input, output) {
output$detailed <- renderPlot({
Dates<-ddply(mpgData,.(cyl),summarise,
disp = ave(disp),
hp = ave(hp),
wt = ave(wt)
)
print( ggplot(mpgData,aes(disp,hp))+
geom_point(shape=17,color="black",size=2) +
geom_rect(aes(xmin=Dates$disp[1], xmax=200, ymin=0, ymax=Inf),fill = "aquamarine",alpha=0.01)
)
})
})
ui.R:
library(shiny)
shinyUI(pageWithSidebar(
headerPanel("Launch Date"),
sidebarPanel(
),
mainPanel(
h3(textOutput("caption")),
tabsetPanel(
tabPanel("Detailed",plotOutput("detailed"))
)
)
))
【问题讨论】:
-
没有完整的代码很难回答。如果在您的
geom_vline中找到Dates,则没有理由不在geom_rect中... -
@juba 我现在添加了一些可以复制问题的示例代码。