【发布时间】: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,这不在您的选择范围内。