R 有关此错误的问题:“;$.shinyoutput中出错:不允许读取shinyoutput对象;
我正在准备一个带有预加载数据的Shinyapp。在我提出的其他问题中(我现在是一个努比),我想问一下为什么这个错误不断发生。这是我的代码,我不知道我还应该说什么,但我真的希望你的专业知识能解决这个问题。这是我的剧本: 用户界面R 有关此错误的问题:“;$.shinyoutput中出错:不允许读取shinyoutput对象;,r,shiny,R,Shiny,我正在准备一个带有预加载数据的Shinyapp。在我提出的其他问题中(我现在是一个努比),我想问一下为什么这个错误不断发生。这是我的代码,我不知道我还应该说什么,但我真的希望你的专业知识能解决这个问题。这是我的剧本: 用户界面 min我无法测试它,因为您的代码样本不可复制。但错误表明您正试图直接在服务器中访问UI输出变量。当然,您可以在服务器中访问生成的输出,但随后它会变成输入,对吗 当您检查输出$nivel是否为1或2时,会发生这种情况。您应该使用服务器中的input$nivel访问nivel
min我无法测试它,因为您的代码样本不可复制。但错误表明您正试图直接在服务器中访问UI输出变量。当然,您可以在服务器中访问生成的输出
,但随后它会变成输入
,对吗
当您检查输出$nivel
是否为1或2时,会发生这种情况。您应该使用服务器中的input$nivel
访问nivel
变量
min<-min(reportesFGE2$Fecha_Registro)
max<-max(reportesFGE2$Fecha_Registro)
ui <- fluidPage(
titlePanel("Delitos"),
sidebarPanel(
dateRangeInput(inputId = "fecha_r",
label= "Fecha de registro",
min = Sys.Date() - 5, max = Sys.Date() + 5),
selectInput(inputId = "nivel",
label= "Nivel",
multiple = F,
choices = c("Nacional"=1, "Provincial"=2)),
selectizeInput(inputId = "provincia",
label= "provincia",
multiple = T,
choices = as.character(unique(reportesFGE2$pro_descripcion))),
selectInput(inputId = "tipo_delito1",
label= "Presunto delito",
multiple = T,
choices = as.character(unique(reportesFGE2$Presunto_Delito)))),
mainPanel( plotOutput("plot1"))
)
server <- function(input, output) {
output$plot1 <- renderPlot({
if (req(output$nivel)==1) {
reportesFGE2$anio<-substring(reportesFGE2$Fecha_Registro,1,4)
x<- subset(reportesFGE2,Presunto_Delito==input$tipo_delito
&Fecha_Registro>=input$fecha_r[1]&Fecha_Registro<=input$fecha_r[2])
y <- x %>% count(x$Presunto_Delito, x$anio)
p1<-plot(y$n~y$`x$anio`,
type="o",
main="Número de delitos por año\n(hasta septiembre de 2019)",
xlab=input$tipo_delito,
ylab="Número de delitos")
} else if (req(output$nivel)==2) {
selectedData <- reactive({
req(input$fecha_r[1])
req(input$fecha_r[2])
req(input$tipo_delito)
req(input$provincia)
reportesFGE2 %>%
dplyr::filter( Fecha_Registro >= input$fecha_R[1]
& Fecha_Registro <= input$fecha_R[2]
&pro_descripcion %in% input$provincia
& Presunto_Delito %in% input$tipo_delito)
})
output$plot1 <-renderPlot({
x==selectedData()
x$anio<-substring(x$Fecha_Registro,1,4)
y <- x %>% count(x$Presunto_Delito, x$anio)
p1<-plot(y$n~y$`x$anio`,
type="o",
main="Número de delitos por año\n(hasta septiembre de 2019)",
xlab=input$tipo_delito,
ylab="Número de delitos")
})
}
})
}
shinyApp(ui = ui, server = server)