R 闪亮快速显示选定的输入,但恢复为第一个输入

R 闪亮快速显示选定的输入,但恢复为第一个输入,r,shiny,R,Shiny,一切加载都很好,但每当我选择瓦特、伏特或安培时,动态图表就会迅速恢复到绘制扫描通道的状态。瓦数、电压和安培图表会快速显示,但随后会恢复为扫描输入 关于如何使其停止返回扫描通道并保持在我选择的通道上,有什么想法吗 用户界面 服务器.R output$graph <- renderDygraph({ uploadedFile <- input$file1 if (is.null(uploadedFile)) return(NULL) # Clea

一切加载都很好,但每当我选择瓦特、伏特或安培时,动态图表就会迅速恢复到绘制扫描通道的状态。瓦数、电压和安培图表会快速显示,但随后会恢复为扫描输入

关于如何使其停止返回扫描通道并保持在我选择的通道上,有什么想法吗

用户界面

服务器.R

output$graph <- renderDygraph({
    uploadedFile <- input$file1

    if (is.null(uploadedFile))
      return(NULL)

    # Clean up the loaded CSV File, convert Time column to a Time Object for Dygraph.
    uploadedFile <- read.csv(uploadedFile$datapath, header=input$header, sep=input$sep, 
                             quote=input$quote)
    uploadedFile$Time <- as.POSIXct(strptime(uploadedFile$Time,"%H:%M:%S"))
    uploadedFile$ctime <- strptime(paste(uploadedFile$Time), "%Y-%m-%d %H:%M:%S")

    # Update the SelectInput and store the value in component5 to be used in the graph.

    observeEvent(uploadedFile, {
      updateSelectizeInput(session, 'uploadChannels', choices = names(uploadedFile))
    })
    selectedInput <- input$uploadChannels
    component5 <- uploadedFile[, selectedInput]


    xts(component5, uploadedFile$Time)  %>%
      dygraph()
     })

})

output$graph@Batanichek是正确的。我不得不修改
server.R
,现在它可以工作了
请注意,我添加了第二个输入,这就是命令加倍的原因

  uploadedFile1 <- reactive({
    validate(need(input$file1, FALSE)) # This is like a better "if (is.null(input$file1)) return(NULL)"
    uf1 <- read.csv(input$file1$datapath)
  })
  uploadedFile2 <- reactive({
    validate(need(input$file2, FALSE)) # This is like a better "if (is.null(input$file2)) return(NULL)"
    uf2 <- read.csv(input$file2$datapath)
  })

  observeEvent(uploadedFile1(), {
    updateSelectizeInput(session, 'uploadChannels1', choices = names(uploadedFile1()))
  })
  observeEvent(uploadedFile2(), {
    updateSelectizeInput(session, 'uploadChannels2', choices = names(uploadedFile2()))
  })

  output$graph <- renderDygraph({


    # Clean up the loaded CSV File, convert Time column to a Time Object for Dygraph.
    uploadedFile1 <- uploadedFile1()
    uploadedFile2 <- uploadedFile2()

    uploadedFile1$Time <- as.POSIXct(strptime(uploadedFile1$Time,"%H:%M:%S"))
    uploadedFile2$Time <- as.POSIXct(strptime(uploadedFile2$Time,"%H:%M:%S"))

    uploadedFile1$ctime <- strptime(paste(uploadedFile1$Time), "%Y-%m-%d %H:%M:%S")
    uploadedFile2$ctime <- strptime(paste(uploadedFile2$Time), "%Y-%m-%d %H:%M:%S")

    # Update the SelectInput and store the value in component5 to be used in the graph.
    selectedInput1 <- input$uploadChannels1
    selectedInput2 <- input$uploadChannels2
    component5 <- uploadedFile1[, selectedInput1]
    component6 <- uploadedFile2[, selectedInput2]
    cbinded <- cbind(component5, component6)

    xts(cbinded, uploadedFile1$Time, uploadedFile2$Time)  %>% 
      dygraph()

    })

uploadedFile1可能是您需要使用
observeEvent(uploadedFile,{
renderDygraph({
)之外,因为当您尝试打印时,选项已更改,需要重新打印
  uploadedFile1 <- reactive({
    validate(need(input$file1, FALSE)) # This is like a better "if (is.null(input$file1)) return(NULL)"
    uf1 <- read.csv(input$file1$datapath)
  })
  uploadedFile2 <- reactive({
    validate(need(input$file2, FALSE)) # This is like a better "if (is.null(input$file2)) return(NULL)"
    uf2 <- read.csv(input$file2$datapath)
  })

  observeEvent(uploadedFile1(), {
    updateSelectizeInput(session, 'uploadChannels1', choices = names(uploadedFile1()))
  })
  observeEvent(uploadedFile2(), {
    updateSelectizeInput(session, 'uploadChannels2', choices = names(uploadedFile2()))
  })

  output$graph <- renderDygraph({


    # Clean up the loaded CSV File, convert Time column to a Time Object for Dygraph.
    uploadedFile1 <- uploadedFile1()
    uploadedFile2 <- uploadedFile2()

    uploadedFile1$Time <- as.POSIXct(strptime(uploadedFile1$Time,"%H:%M:%S"))
    uploadedFile2$Time <- as.POSIXct(strptime(uploadedFile2$Time,"%H:%M:%S"))

    uploadedFile1$ctime <- strptime(paste(uploadedFile1$Time), "%Y-%m-%d %H:%M:%S")
    uploadedFile2$ctime <- strptime(paste(uploadedFile2$Time), "%Y-%m-%d %H:%M:%S")

    # Update the SelectInput and store the value in component5 to be used in the graph.
    selectedInput1 <- input$uploadChannels1
    selectedInput2 <- input$uploadChannels2
    component5 <- uploadedFile1[, selectedInput1]
    component6 <- uploadedFile2[, selectedInput2]
    cbinded <- cbind(component5, component6)

    xts(cbinded, uploadedFile1$Time, uploadedFile2$Time)  %>% 
      dygraph()

    })