Относительно вопроса ConditionalPanel с sliderInput на основе swithcInput :
Я работаю над инструментом прогнозирования и на основе некоторых характеристик я вычислю прогноз риска.
Поскольку это будет всемирный инструмент, я бы хотел, чтобы люди могли указывать свой вес в килограммах или фунтах.
Я сделал переключатель SwitchInput между KG и LB и на основе этого переключателя,люди могут либо указывать свой вес в килограммах, либо в фунтах стерлингов (поэтому не оба в одно и то же время).(KG будет по умолчанию)
Как я могу на сервере преобразовать вес в LB в KG, если переключатель находится в режиме LB, и использовать входные данные из ввода $ weightKG, если переключатель включен в KG?
Следующеене работает:
library(shiny)
library(shinyWidgets)
LBtoKG <- function(weightLB){
round(0.45359237*weightLB,0)}
# Define UI ----
ui <- fluidPage(
titlePanel(title=div( "Risk prediction tool")),
p("Chronic Obstructive Pulmonary Disease (COPD) is a lung problem that can affect people mainly as they get older."),
selectInput("sex", label=p("What is your gender?"),
choices=list("Female"=1, "Male"=0), selected=1),
sliderInput("age", label=p("What is your age?"), min = 18, max = 90, value = 35),
strong("What is your weight?"),
br(),
switchInput("switchweight", value = TRUE , onLabel = "kg", offLabel = "lb"),
conditionalPanel(condition = "input.switchweight == true",
sliderInput("weightKG", label=NULL, min = 25, max = 200, value = 75, round=0)),
conditionalPanel(condition = "input.switchweight == false",
sliderInput("weightLB", label=NULL, min = 55, max = 440, value = 165, round=0))
)
# Define server logic ----
server <- function(input, output, session) {
weight <- eventReactive(input$switchweight, {
switch(input$switchweight,
"true" = as.numeric(as.character(input$weightKG)),
"false" = LBtoKG(as.numeric(as.character(input$weightLB))))
})
}
# Run the app ----
shinyApp(ui = ui, server = server)