我想编写一个读取上传数据的应用程序,然后根据列中唯一元素的数量(列名称为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)
三个问题:
1。当我把
if (is.null(infile))
return(NULL)
而不是validate
,它给出了一个如下错误:
missing value where TRUE/FALSE needed
我该怎么做才能摆脱这个错误?
2。我如何为每个numericInput
添加标签?
3。我以后如何使用输入值?在reactive
环境中?
由于