【问题标题】:R Shiny grep javascriptR闪亮的grep javascript
【发布时间】:2020-04-27 16:39:12
【问题描述】:

我希望能够在conditionalPanel 函数中使用grepl

这是一个 MWE。在这一个中,我测试我的输入是否明确地是其中一种可能性。

library(shiny)

ui <- fluidPage(

  column(5, wellPanel(
    uiOutput("test")
  )
  ),

  column(7,
         conditionalPanel("input.essai_res == 'first choice.xlsx'",
                           p("test")
         )

  )
)

server <- function(input, output) {

  output$test <- renderUI({
    selectInput("essai_res", h3("Test"), c("first choice.xlsx", "second choice.xlsx"))
  })
}

shinyApp(ui = ui, server = server)

除此之外,我希望能够测试字符串“first”是否是例如选择的一部分。

我试过了

conditionalPanel("grepl('first', input.essai_res)", p("test"))

conditionalPanel("'first'.test(input.essai_res)", p("test"))

第二个是为了尝试 JavaScript 命令。

在这两种情况下,无论列表中的选择是什么,“测试”总是出现。

我该怎么做才能让“test”仅在“first”是选项的一部分时出现?

我添加此评论是为了回答以下有关上下文的问题。选择来自这些命令行:

files_list <- list.files(path = "Data/", pattern = "\\.xlsx$|\\.xlsm$", full.names = TRUE)
files_names <- substring(files_list, 6)
files_list <- as.list(files_list)
names(files_list) <- files_names

if (length(files_list) == 0){files_list <- "No files in the folder \"Data\""}

output$path_res <- renderUI({
    selectInput("essai_a", h3("Title"), files_list)
  })

【问题讨论】:

    标签: javascript r shiny grepl


    【解决方案1】:

    您可以使用includes,但请注意它在 IE 中不起作用:

    library(shiny)
    
    ui <- fluidPage(
    
      column(
        width = 5, wellPanel(
          selectInput("essai_res", h3("Test"), c("first choice.xlsx", "second choice.xlsx"))
        )
      ),
    
      column(
        width = 7,
        conditionalPanel(
          "input.essai_res.includes('first')",
          p("test")
        )
      )
    )
    
    server <- function(input, output) {
    }
    
    shinyApp(ui = ui, server = server)
    

    【讨论】:

    • 谢谢@Victorp!由于它不适用于 IE,因此我验证了之前的答案。但我也留着你!
    【解决方案2】:

    使用正则表达式:"(/first/).test(input.essai_res)"。

    【讨论】:

    • 虽然这确实回答了这个问题,但您能否提供额外的上下文和一个工作示例?
    • 谢谢@stephane 我看到它需要一个正则表达式,但我不知道如何制作。所以必须用(/.../) 来分隔表达式,对吧?
    • @EtherDragon 选择来自list.files,模式为xlsx|xlsm 来自目录,然后在这些名称的文件中,以防其中一些名称具有某种模式,我需要做显示面板以获得更多选项。工作示例确实很长
    • @EtherDragon 我编辑了主帖来回答(也许?)你的问题
    猜你喜欢
    • 2021-09-28
    • 1970-01-01
    • 2017-04-04
    • 1970-01-01
    • 2015-05-07
    • 2018-10-04
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多