我有一個Shiny應用程序,其中包含一些下拉選擇框,其值從讀取RDS文件中填充。該應用程序還包含一個fileInput函數來上傳新數據。如何更改下拉框中的值以反映新數據?目前我可以看到數據已上傳,但舊數據仍保留在下拉列表中。使用fileInput上傳新數據後,更新Shiny的'selectInput'下拉菜單和新值使用fileInput上傳新數據
應上傳保存到使用
saveRDS(data.frame(names=c("Jill","Jane","Megan")),"myDataFrame.rds")
在我app.R文件的文件中的數據,我首先定義了數據的「默認」值:
myDataFrame <- data.frame(names=c("Tom","Dick","Harry"))
的我的app.R
的內容如下:
library(shiny)
ui <- shinyUI(
fluidPage(
fileInput('file1', 'Choose file to upload',accept = ".rds"),
selectInput("myNames","Names",myDataFrame$names),
tableOutput('contents')
)
)
server <- shinyServer(function(input, output) {
output$contents <- renderTable({
inFile <- input$file1
if (is.null(inFile)) { return(myDataFrame) }
readRDS(inFile$datapath)
})
})
的應用程序的初始視圖是預計:下拉菜單和表格都包含「默認」名稱。上傳包含新數據框的RDS文件時,表格會發生變化(這正是我正在查找的內容),但下拉值不會。我怎樣才能讓後者發生?
號(T還)。文件上傳之前和之後,下拉菜單現在都填充了數字1,2和3。 – janverkade
@janverkade你正在使用確切的代碼和相同的'myDataFrame'?你有沒有改變data.frames?我認爲行號與此有關。 – PoGibas
是的 - 將您的代碼複製到我的app.R. – janverkade