【问题标题】:How to assign value to choices in selectInput如何为 selectInput 中的选项赋值
【发布时间】:2018-05-08 03:23:31
【问题描述】:

我目前正在开发一个 Shiny App,它需要处理用户输入的值。在我的用户界面中,我创建了 2 个 selectInput,其中一个询问性别,另一个询问年龄,代码如下:

library(shiny)

ui <- fluidPage(
sidebarPanel(submitButton("Submit")),

mainPanel(tabsetPanel(type = "tabs",
tabPanel("Personal Information", selectInput("age", "What is your age?:",c("--" = "null","16-19" = "age1","20-24" = "age2","25-34" = "age3","35-44" = "age4")),
          selectInput("gender","What is your biological gender?:",c("--" = "null","male" = "gender1","female" = "gender2"))
),
tabPanel("Result", verbatimTextOutput("result"))
)))

然后对于上面写的每个年龄组,我有两个值(每个性别一个),如下所示:

age1 <- c(1.00,1.00)
age2 <- c(11.11,0.75)
age3 <- c(3.39, 0.45)
age4 <- c(1.35, 0.09)  

所以现在我在服务器上写了这个:

server <- function(input, output) { 

age1 <- c(1.00,1.00)
age2 <- c(11.11,0.75)
age3 <- c(3.39, 0.45)
age4 <- c(1.35, 0.09)  

output$result <- renderPrint ({if(input$gender == "gender1") {

print(log10(input$age[1]))
}})}

我的意图是如果用户是男性并选择特定年龄,结果将显示他年龄组的值的 log10(这是每个向量的第一个值),但显然这段代码不起作用.

我对 Shiny 和 r 很陌生,所以这看起来有点愚蠢。希望有人可以帮助我:)

【问题讨论】:

  • log10(16) 是 1.204,这不在您的选择范围内。

标签: r shiny


【解决方案1】:

你也可以试试switch。也尝试使用actionButton 而不是submitButton 推荐的here

server <- function(input, output) { 

    data <- reactive({
          switch(input$age,
          "--" = c(NA,NA),
          "age1" =  c(1.00,1.00),
          "age2" = c(11.11,0.75),
          "age3" = c(3.39, 0.45),
          "age4" = c(1.35, 0.09)
    )
 })


 output$result <- renderPrint ({if(input$gender == "gender1") {
                  print(log10(data()[1]))
 }})}

【讨论】:

    猜你喜欢
    • 2020-09-27
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 2017-12-02
    • 1970-01-01
    • 2021-03-24
    相关资源
    最近更新 更多