R 有关此错误的问题:“;$.shinyoutput中出错:不允许读取shinyoutput对象;

R 有关此错误的问题:“;$.shinyoutput中出错:不允许读取shinyoutput对象;,r,shiny,R,Shiny,我正在准备一个带有预加载数据的Shinyapp。在我提出的其他问题中(我现在是一个努比),我想问一下为什么这个错误不断发生。这是我的代码,我不知道我还应该说什么,但我真的希望你的专业知识能解决这个问题。这是我的剧本: 用户界面 min我无法测试它,因为您的代码样本不可复制。但错误表明您正试图直接在服务器中访问UI输出变量。当然,您可以在服务器中访问生成的输出,但随后它会变成输入,对吗 当您检查输出$nivel是否为1或2时,会发生这种情况。您应该使用服务器中的input$nivel访问nivel

我正在准备一个带有预加载数据的Shinyapp。在我提出的其他问题中(我现在是一个努比),我想问一下为什么这个错误不断发生。这是我的代码,我不知道我还应该说什么,但我真的希望你的专业知识能解决这个问题。这是我的剧本:

用户界面


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)