为了账号安全,请及时绑定邮箱和手机立即绑定

conditionalPanel() 基于包含字符串中的逻辑

conditionalPanel() 基于包含字符串中的逻辑

明月笑刀无情 2022-08-18 15:59:35
我的询问感觉接近于这个问题,但所提供的支持仅限于应用于一个数据元素的逻辑。我想学习JavaScript应用于字符串/向量/数组(不确定在我的示例中使用哪种语言),这样如果选择了任何哺乳动物,就会出现消息,但是如果选择了任何鸟类,则不会出现消息。library(shiny)birds <- c("finch","robin","crow","duck")mammals <- c("elephant", "human", "dog", 'cat')ui <- fluidPage(   titlePanel("Select Conditional"),     mainPanel(       column(4,       selectizeInput(inputId = "animals",                      label = "Select An Animal",                      choices= list('Examples of Birds' = birds,                                     'Example of mammals' = mammals)       )),       column(8,       conditionalPanel(condition = "input.animals.indexOf('birds')",       textOutput("text")))     ))server <- function(input, output) {      output$text <- renderText({"This is a mammal."})}shinyApp(ui = ui, server = server)我尝试过conditionalPanel(condition = "input.animals.Array.indexOf('birds')",conditionalPanel(condition = "input.animals.str.indexOf('birds')"conditionalPanel(condition = "input.animals.Vector.indexOf('birds')"conditionalPanel(condition = "input.animals.String.indexOf('birds')"感谢您的任何想法。请原谅我对向量,数组,字符串缺乏了解。
查看完整描述

1 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

R中的非输入变量不会传递给JavaScript,作为一种解决方法,我将字符向量构建到JS数组中,并将其传递到条件中。因此,在这种情况下通过的实际条件是哪个执行您想要的操作。['elephant', 'human', 'dog', 'cat'].includes(input.animals)


library(shiny)


birds <- c("finch","robin","crow","duck")

mammals <- c("elephant", "human", "dog", 'cat')


ui <- fluidPage(

  titlePanel("Select Conditional"),

  mainPanel(

    column(4,

           selectizeInput(inputId = "animals",

                          label = "Select An Animal",

                          choices= list('Examples of Birds' = birds, 

                                        'Example of mammals' = mammals)

           )),

    column(8,

           conditionalPanel(condition = paste0(paste0("[",toString(paste0("'",mammals,"'")),"]"),".includes(input.animals)"),

                            textOutput("text")))

  ))


server <- function(input, output) {

  output$text <- renderText({"This is a mammal."})

}


shinyApp(ui = ui, server = server)


查看完整回答
反对 回复 2022-08-18
  • 1 回答
  • 0 关注
  • 71 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信