R根据输入文件更新输入

R根据输入文件更新输入,r,date,range,shiny,R,Date,Range,Shiny,我正在尝试制作一个闪亮的应用程序,将user.tsv文件作为输入, 查看一个定义的列以确定时间范围,然后让用户从该时间范围中选择子集 我能够加载在用户文件中,找到文件中的最小和最大日期 我认为可以使用此信息在dateRangeInput()中设置最小/最大值和开始/结束值 然而,即使在加载文件输入后,字段也是空白的。我不能在global.R或其他任何地方设置这些日期,因为每个上传的文件都会更改这些日期 用户文件简化示例: V1 V2 V3 7753 7 Jan 14 09:50:

我正在尝试制作一个闪亮的应用程序,将user.tsv文件作为输入, 查看一个定义的列以确定时间范围,然后让用户从该时间范围中选择子集

我能够加载在用户文件中,找到文件中的最小和最大日期

我认为可以使用此信息在
dateRangeInput()
中设置最小/最大值和开始/结束值

然而,即使在加载文件输入后,字段也是空白的。我不能在global.R或其他任何地方设置这些日期,因为每个上传的文件都会更改这些日期

用户文件简化示例:

V1  V2  V3
7753    7 Jan 14    09:50:00
7754    7 Jan 14    09:55:00
8366    9 Jan 14    12:55:00
8471    9 Jan 14    21:40:00
8472    9 Jan 14    21:45:00
8552    10 Jan 14   04:25:00
8553    10 Jan 14   04:30:00
(真实版有更多的栏目,但这在这里并不重要)

server.R(请原谅获取最小值/最大值的方法可能过于复杂,我将使用
min()
max()
下次:):


非常感谢你的任何提示

由于
updatedTerangeInput
只能更新选定的值和标签(ref:),因此可以使用
renderUI
解决此问题:

ui.R

library(shiny)

shinyUI(
  fluidPage(
    fileInput("inFile", "Upload monitor file:"),
    uiOutput("dates")
  )
)
library(shiny)
lct <- Sys.getlocale("LC_TIME")
Sys.setlocale("LC_TIME", "C")
options(shiny.maxRequestSize = 30 * 1024 ^ 2) 

shinyServer(function(input, output) {
  myData <- reactive({
    validate(
      need(input$inFile, "Select a file to load")
    )
    inF <- input$inFile
    read.delim(inF$datapath, header = FALSE)
  })

  output$dates <- renderUI({
    dates <- as.Date(myData()$V2, format = "%d %b %y")
    minval <- min(dates)
    maxval <- max(dates)
    dateRangeInput('expDateRange', label = "Choose experiment time-frame:",
                   start = minval, end = maxval, 
                   min = minval, max = maxval,
                   separator = " - ", format = "yyyy-mm-dd",
                   language = 'cz', weekstart = 1
    )
  })
})
server.R

library(shiny)

shinyUI(
  fluidPage(
    fileInput("inFile", "Upload monitor file:"),
    uiOutput("dates")
  )
)
library(shiny)
lct <- Sys.getlocale("LC_TIME")
Sys.setlocale("LC_TIME", "C")
options(shiny.maxRequestSize = 30 * 1024 ^ 2) 

shinyServer(function(input, output) {
  myData <- reactive({
    validate(
      need(input$inFile, "Select a file to load")
    )
    inF <- input$inFile
    read.delim(inF$datapath, header = FALSE)
  })

  output$dates <- renderUI({
    dates <- as.Date(myData()$V2, format = "%d %b %y")
    minval <- min(dates)
    maxval <- max(dates)
    dateRangeInput('expDateRange', label = "Choose experiment time-frame:",
                   start = minval, end = maxval, 
                   min = minval, max = maxval,
                   separator = " - ", format = "yyyy-mm-dd",
                   language = 'cz', weekstart = 1
    )
  })
})
库(闪亮)

lct这正是我需要的!谢谢你的回答!因此,如果我正确地得到它,我需要根据该文件反应性地创建UI?现在有道理了。再次感谢你@关于文件内容的jprov,是的。