2

我正在尝试使用 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

4

1 回答 1

0

您可以在 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)
}
于 2019-01-18T07:24:55.810 回答