【发布时间】: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