Два поля в splitlayout в приложении R shiny смещены. Как мне это исправить?

#r #shiny #shinydashboard

#r #блестящий #shinydashboard

Вопрос:

У меня есть два поля numericInput, позволяющие вводить минимальное и максимальное значения (диапазон) числовой переменной. Я пытался использовать splitLayout, который работает, но поля смещаются, когда я добавляю ярлык для полей.

Код приведен ниже

 library(shiny)

# Define UI for application that draws a histogram
ui <- fluidPage(

# Application title
titlePanel("Old Faithful Geyser Data"),

# Sidebar with a slider input for number of bins 
sidebarLayout(
    sidebarPanel(
        sliderInput("bins",
                    "Number of bins:",
                    min = 1,
                    max = 50,
                    value = 30)
    ),

    # Show a plot of the generated distribution
    mainPanel(

        #fluidRow(
        splitLayout(

            variable <- faithful$waiting,

            numericInput(paste("Min"), 
                         #round = TRUE,
                         label = h5(c("test")),
                         min = round(min(variable, na.rm=TRUE)),
                         max = round(max(variable, na.rm=TRUE))-1,
                         value = round(min(variable, na.rm=TRUE))

            ), ## end slider input

            numericInput(paste("Min"), 
                         #round = TRUE,
                         label = h5(""),
                         min = round(min(variable, na.rm=TRUE)) 1,
                         max = round(max(variable, na.rm=TRUE)),
                         value = round(max(variable, na.rm=TRUE))


            )
    )
)
))

# Define server logic required to draw a histogram
server <- function(input, output) {

output$distPlot <- renderPlot({
    # generate bins based on input$bins from ui.R
    x    <- faithful[, 2]
    bins <- seq(min(x), max(x), length.out = input$bins   1)

    # draw the histogram with the specified number of bins
    hist(x, breaks = bins, col = 'darkgray', border = 'white')
})
}

# Run the application 
shinyApp(ui = ui, server = server)
  

Если вы запустите код, вы увидите, что поля смещены.

Как я могу это исправить?

Ответ №1:

Проблема в том, что у вас есть метка для одного поля, которая опускает его, без эквивалентной метки для другого поля. Чтобы переместить второе поле вниз, вам нужно включить что-то, что будет читаться как label, ничего не показывая. Я использовал разрыв HTML:

  numericInput(paste("Min"), 
                     #round = TRUE,
                     label = h5(HTML("<br/>")),
                     min = round(min(variable, na.rm=TRUE)) 1,
                     max = round(max(variable, na.rm=TRUE)),
                     value = round(max(variable, na.rm=TRUE))