Блестящий быстро показывает выбранный вход, но возвращается к первому входу

75
3

Все загружается отлично, но когда я выбираю Watts, Volts или Amps, диаграмма Dygraph быстро возвращается к графическому отображению канала сканирования. Скоро отображаются диаграммы мощности, напряжения и усилителя, но затем они возвращаются к входу "Сканирование".

Любые идеи о том, как я могу заставить его перестать возвращаться к каналу сканирования и сохранить его на канале, который я выбираю?

Мой набор данных здесь для загрузки. ui.R

shinyUI(fluidPage(
navbarPage("Engineering Data",
tabPanel("Upload your Own File:",
sidebarLayout(
sidebarPanel(
fileInput('file1', 'Choose CSV File',
accept=c('text/csv',
'text/comma-separated-values,text/plain',
'.csv')),
tags$hr(),
checkboxInput('header', 'Header', TRUE),
radioButtons('sep', 'Separator',
c(Comma=',',
Semicolon=';',
Tab='\t'),
','),
radioButtons('quote', 'Quote',
c(None='',
'Double Quote'='"',
'Single Quote'="'"),
'"'),
selectInput("uploadChannels", label = "Choose Channel",
choices = NULL)
),
mainPanel(
dygraphOutput('graph')
))

)

)))

server.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()
})

})

спросил(а) 2021-01-19T11:14:32+03:00 2 месяца, 3 недели назад
1
Решение
62

@Батаничек был прав. Мне пришлось изменить 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()

})

ответил(а) 2021-01-19T11:14:32+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема