File io 从fileInput中选择多个输入
我想让用户输入一个文件(.csv),从该文件中,两个selectizeInputs将填充.csv的列名。用户将询问上传文件中的哪些列是y变量,哪些列是x变量。这,我能做到 我不能做的是:我想让y变量中的选择从x变量下拉菜单中的x变量选项中消失 此外,我还使用了尝试提供帮助,但他们没有使用fileInput中的值。因此,我无法让下面的代码正常工作。感谢您提供的任何建议/帮助File io 从fileInput中选择多个输入,file-io,shiny,selectize.js,File Io,Shiny,Selectize.js,我想让用户输入一个文件(.csv),从该文件中,两个selectizeInputs将填充.csv的列名。用户将询问上传文件中的哪些列是y变量,哪些列是x变量。这,我能做到 我不能做的是:我想让y变量中的选择从x变量下拉菜单中的x变量选项中消失 此外,我还使用了尝试提供帮助,但他们没有使用fileInput中的值。因此,我无法让下面的代码正常工作。感谢您提供的任何建议/帮助 ui<- fluidPage( titlePanel("Test"), sidebarPanel(
ui<- fluidPage(
titlePanel("Test"),
sidebarPanel(
fileInput(inputId = "file1", label = "Upload File"),
selectizeInput(
"sampleyvars", "Y-vars", choices = NULL, multiple = FALSE
),
selectizeInput(
"samplevars", "X-vars", choices = NULL, multiple = TRUE
)
),
mainPanel(h3("Nothing special")
)
)
server<- function(input, output, session) {
observe({
file1 <- input$file1
if(is.null(file1)){return()}
dataSet <- read.csv(file=file1$datapath)
vals1<-input$sampleyvars
vals2<-input$samplevars
updateSelectizeInput(session, "sampleyvars",
choices = colnames(dataSet)[! vals1 %in% vals2])
updateSelectizeInput(session, "samplexvars",
choices =colnames(dataSet)[! vals2 %in% vals1])
})
}
shinyApp(ui = ui,server = server)
ui您的X变量小部件的ID
错误:samplevars
而不是您在update*
函数中使用的samplexvars
。我将其更改为后一个ID,并稍微调整了代码以获得所需的效果
完整示例:
ui<- fluidPage(
titlePanel("Test"),
sidebarPanel(
fileInput(inputId = "file1", label = "Upload File"),
selectizeInput(
"sampleyvars", "Y-vars", choices = NULL, multiple = FALSE
),
# you had ID here wrong
selectizeInput(
"samplexvars", "X-vars", choices = NULL, multiple = TRUE
)
),
mainPanel(h3("Nothing special")
)
)
server<- function(input, output, session) {
data <- reactive({
file1 <- input$file1
req(file1)
dataSet <- read.csv(file=file1$datapath)
vars <- colnames(dataSet)
updateSelectizeInput(session, "sampleyvars", "Y-vars",
choices = vars, selected = vars[1])
updateSelectizeInput(session, "samplexvars", choices = vars[-1], selected = vars[2])
dataSet
})
observe({
varX <- colnames(data())
varX <- varX[!(varX %in% input$sampleyvars)]
updateSelectizeInput(session, "samplexvars", "X-vars", choices = varX)
})
}
shinyApp(ui = ui,server = server)
uiAh……非常感谢!这正是我需要的。