【问题标题】:Shiny App : getting input choices from an uploaded fileShiny App:从上传的文件中获取输入选择
【发布时间】:2014-10-07 02:14:09
【问题描述】:

我正在尝试使用 Shiny 从文件中获取数据并使用此数据填充列表。

这个过程非常标准。在 server.R 文件上,我通过读取 csv 文件得到一个名为“list”的向量。我希望能够使用 selectInput() 函数从此向量中选择值。所以我放了一个观察循环来检查文件是否上传,如果正确,则创建list

observe({
  inFile<-input$DATA
  if(!is.null(inFile)){
    data = read.table(inFile$datapath, header=T,sep=";")
    list=unique(data$SLE)
  }else{
    list=NULL
  }
})

我的selectInput()是这样的:

output$SLE = renderUI({ selectInput('SLE1', label='Choose the item :', levels(list)) })

如果我把selectinput()放在观察循环中,选择框效果很好,只是每次执行观察循环时,选择框都会重置。所以,这不是一个解决方案。

如果我将选择框排除在观察循环之外,list 会保留默认值,即使数据文件已加载。

我尝试将list 设置为反应值,但没有成功。如何设置list

【问题讨论】:

  • 不应该是list 而不是sle.list 吗?
  • 是的,你是对的,我编辑了它。
  • 我使用这篇帖子link 来找到解决方案。我真的不知道为什么它现在工作以及为什么它以前不工作,我只是在观察循环中将 out$SLE 替换为 updateSelectInput(session,'SLE',choices=levels(list)) 。

标签: r shiny shiny-server


【解决方案1】:

您可以在 UI.R 本身的条件面板中使用选择输入,并且

使用函数代替“choices=”来检索数据框作为选择列表。

一个例子如下:

在ui.R中:

selectInput("id", "Select Employee:", get.Employee()) 

所需功能:

get.Customers <- function(input){
    # YOU CAN ENTER YOUR CODE IN HERE
    df_input <- input$nr
    return(df_input)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-27
    • 2012-10-12
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 2017-10-17
    相关资源
    最近更新 更多