Я пытаюсь запустить блестящий и в пределах одного из renderPlot я определяю кадр данных с помощью ddply, и поскольку я использую одну из входных переменных функции, мне нужно использовать " здесь»функция:Задание geom_rect с помощью aes с использованием локальных переменных
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) +
...
)
и это работает, и обращающийся даты dataframe штрафа. Тем не менее, я хотел бы добавить 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
Я думаю, что это из-за даты, которые местный кадр данных. Я пробовал играть с определением среды, но не могу заставить ее работать, может ли кто-нибудь показать мне, как это работает?
EDIT: Вот несколько примеров, которые должны повторить проблему с использованием набора данных mtcars.
server.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"))
)
)
))
Это трудно ответить без всего кода. Если 'Dates' находится в вашей' geom_vline', нет причин, чтобы это не было в 'geom_rect' ... – juba
@juba Теперь я добавил пример кода, который должен повторить проблему. – gabrown86