0
我想編寫一個讀取上載數據的應用程序,然後由於列中唯一元素的數量(列的名稱爲Big)而放置足夠多的numericInput
。這個問題here幫助了我。有光澤的輸入窗口小部件的動態數量
的代碼如下:
library(shiny)
ui <- fluidPage(
fileInput(inputId = "up","", accept = '.csv'),
uiOutput("sliders")
)
server <- function(input, output, session) {
INPUT <- reactive({
infile <- input$up
#validate(need(input$up, "Input a valid filepath."))
read.csv(infile$datapath, header = TRUE, sep = ",")
})
inVars <- reactive({
unique(INPUT()$Big)
})
output$sliders <- renderUI({
pvars <- length(inVars())
lapply(seq(pvars), function(i) {
numericInput(inputId = paste0("range", pvars[i]),label = pvars[i],value = 1)
})
})
}
shinyApp(ui = ui, server = server)
三個問題:
當我把的validate
if (is.null(infile))
return(NULL)
相反,它讓我看起來像一個錯誤這個:
missing value where TRUE/FALSE needed
我該怎麼做才能擺脫這個錯誤?
2.我怎麼能添加對numericInput
的每一個標籤嗎?
3.我怎樣才能稍後使用輸入值?在reactive
的環境?
感謝
這不起作用。我在'ui'中添加了'dataTableOutput(「table」)',但仍然不起作用。另外,我想自動讀取沒有和動作按鈕的值。 –
它應該與'tableOutput'一起工作,我更新了用於測試的輸入數據和屏幕截圖的答案,請檢查您是否擁有最新版本的Shiny。如果您想自動讀取值,可以在https://stackoverflow.com/a/40643541/4322318 – Geovany
中查看解決方案。您的代碼存在一個問題,我無法弄清楚。如果你改變'd'的值,'c'的值將會改變。當我第一次使用不同的數據集運行你的代碼時,出現了一個錯誤:'參數意味着不同的行數:4,5。 'observeEvent'裏面看起來有些不對勁。 –