我正在从ML模型(.rda文件)中提取重要变量,并将它们放在UI页面中的numericInput
框或selectInput
选项菜单中。我将每个输入放在不同的行中。我希望它作为连续两列。我怎样才能做到这一点?我正在按照image
下面是我要修改的代码。
model <- reactive({readRDS(input$Load_model$datapath)})
temp_col <- reactive({colnames(model()$model)})
temp_no_col <- reactive({ncol(model()$model)})
abc <- reactive(lapply(model()$model, class))
process <- eventReactive(input$show_fields, {
lapply(1:(temp_no_col()), function(i) {
if(abc()[i] == "numeric" ) {
numericInput(temp_col()[i], label = temp_col()[i],value = 0)
}
else if(abc()[i] == "factor") {
selectInput(temp_col()[i], label = temp_col()[i],choices = unique(model()$model[i]))
}
})
})
答案 0 :(得分:0)
正如@ismirsehregal在评论中所说,您需要看一下闪亮的布局指南。您正在使用lapply
以编程方式创建输入,因此需要将创建的输入分派到两列中,如下所示:
process <- eventReactive(input$show_fields, {
inputs_temp <- lapply(1:(temp_no_col()), function(i) {
if(abc()[i] == "numeric" ) {
numericInput(temp_col()[i], label = temp_col()[i],value = 0)
}
else if(abc()[i] == "factor") {
selectInput(temp_col()[i], label = temp_col()[i],choices = unique(model()$model[i]))
}
})
shiny::tagList(
shiny::fluidRow(
# odd cols column
shiny::column(6, inputs_temp[1:length(inputs_temp) %% 2 != 0]),
# even cols column
shiny::column(6, inputs_temp[1:length(inputs_temp) %% 2 == 0])
)
)
}
但是请注意,您没有提供reproducible example,所以我无法测试答案的准确性。如果您使用应用程序的小示例来编辑问题,那么我可以调整和编辑答案以使用该问题。