Группировка текстового поля ввода в блестящем - PullRequest
0 голосов
/ 05 июня 2018

Я работаю над созданием приложения, использующего приложение «глянцевый», которое обрабатывает введенные пользователем данные и вычисляет статистику определенного пациента, а затем отображает значения результатов.Я вставил фиктивный фрагмент моего кода ui.R ниже.Я пытаюсь найти способ сгруппировать поля textInput по визитам пациентов.Есть ли способ сгруппировать блоки textInput, чтобы каждая строка представляла отдельное посещение пациента с полями textInput, выровненными бок о бок?

Я надеюсь отобразить поля textInput как:

Визит 1
[текстовое поле BMI1] [текстовое поле холестерин 1] [текстовое поле 1 сердечного ритма]

Визит2

[текстовое поле BMI2] [текстовое поле холестерина 2] [текстовое поле сердечного ритма 2]

      ui <- fluidPage(# App title ----
            titlePanel("Dummy Patient Analysis"),

            # Sidebar layout with input and output definitions ----
            sidebarLayout(
              sidebarPanel(

               #### Visit 1 #######
                textInput(
                  inputId = "bmi1",
                  label = "BMI1",
                  value = 2
                ),
                textInput(
                  inputId = "chol1",
                  label = "cholesterol 1",
                  value = 5
                ),
                textInput(
                  inputId = "heart_rate1",
                  label = "Heart Rate",
                  value = 40
                ),

                #### Visit 2 #######
                textInput(
                  inputId = "bmi2",
                  label = "BMI2",
                  value = 2
                ),
                textInput(
                  inputId = "chol2",
                  label = "cholesterol 2",
                  value = 7
                ),
                textInput(
                  inputId = "heart_rate2",
                  label = "Heart Rate",
                  value = 42
                ),

                actionButton("process", "Estimate")
              ),
            mainPanel(
              tableOutput("view"),
              verbatimTextOutput("summary")
            )
       )
   )

1 Ответ

0 голосов
/ 05 июня 2018

splitLayout разработан, чтобы делать именно такие вещи с минимальными усилиями.Просто оберните каждый набор входных данных рядом с splitLayout() для достижения того, что вы ищете, например:

library(shiny)
ui <- fluidPage(
  titlePanel("Dummy Patient Analysis"),
  sidebarLayout(
    sidebarPanel(
      splitLayout(
        textInput(inputId = "bmi1", label = "BMI1", value = 2),
        textInput(inputId = "chol1", label = "cholesterol 1", value = 5),
        textInput(inputId = "heart_rate1", label = "Heart Rate", value = 40)
      ),
      splitLayout(
        textInput(inputId = "bmi2", label = "BMI2", value = 2),
        textInput(inputId = "chol2", label = "cholesterol 2", value = 7),
        textInput(inputId = "heart_rate2", label = "Heart Rate", value = 42)
      ),      
      actionButton("process", "Estimate")
    ),
    mainPanel(
      tableOutput("view"),
      verbatimTextOutput("summary")
    )
  )
)
server <- function(input, output) {}
shinyApp(ui, server)

Если вы не хотите, чтобы блоки занималиНа всей боковой панели вы также можете указать splitLayout вектор, который определяет ширину ячейки (см. страница справки ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...