【发布时间】:2019-07-26 14:44:35
【问题描述】:
下面是一个例子,但在目前的情况下,我有很多条件要通过,我不想使用 if 语句。如果我能完成工作,有没有其他不使用的方法。
代码
library(shiny)
ui = fluidPage(
selectInput('p_id','ID:', c(111,222,333)),
uiOutput('uiID')
)
server = function(input, output, session) {
maxdays <- reactive({
if(input$p_id %in% c(111)){
x = 1
}else{
if(input$p_id %in% c(222)){
x = 2
}else
x = 3
}
return(x)
})
output$uiID <- renderUI({
selectInput('days','Days:', choices=seq(1,maxdays()))
})
}
runApp(shinyApp(ui = ui, server = server))
【问题讨论】:
-
v <- c(111,222,333); which(v==111); which(v==222) -
您的示例确实有效。这不是编写 if else 语句的最佳方式,但仍然如此。为什么不想使用 if 语句?
-
@Wilmar van Ommeren。我现在的情况是,如果我使用 if 条件,那么我必须写大约 700 个 if 条件,那么只有我才能得到准确的输出。我不想这样做,因为我觉得这不是正确的方法。如果您有任何建议,请告诉我。