【问题标题】:How to create a text input that receives several words separated by commas in a shiny app?如何在闪亮的应用程序中创建一个接收由逗号分隔的多个单词的文本输入?
【发布时间】:2019-08-21 23:05:23
【问题描述】:

所以我有一个闪亮的应用程序和一个文本输入,它接收一个用作函数输入的单词,它在 UI 中看起来像这样:

textInputAddon(inputId="taxa",addon=icon("search"), 
                       label=tags$h4(tags$strong("Enter the name of the taxonomic group:")),placeholder="Example: Cetacea")

然后在服务器中输入中提交的单词用于下载一个tsv文件,我将它渲染成这样:

taxaInput <- reactive({grades(input$taxa)})
  output$downloadData <- downloadHandler(
    filename = function() {
      paste(input$taxa, ".tsv")
    },
    content = function(file) {
      shiny::withProgress(
        message=paste0("Downloading and annotating dataset for  ",input$taxa), detail='This may take several minutes',
        value=0,
        {
          shiny::incProgress(1/10)
          Sys.sleep(1)
          shiny::incProgress(4/10)
          write_tsv(taxaInput(), file)
        }
      )
    }
  )

“grades()”函数是我的用户自定义函数,我只能用它来下载搜索一个单词的文件。我想要的是能够搜索在输入中输入这样的内容: Word1,Word2,Word3

在一个简单的 R 脚本中,我用这个词替换了一个向量:

group<-c(Word1,Word2,Word3)

但在闪亮的应用程序中我无法

感谢您提前回复

【问题讨论】:

  • 你试过strsplit吗?
  • 我没有,谢谢,我试试看。但如果有人只使用一个词作为输入,它仍然有效吗?
  • 我不清楚需要什么。你在尝试做'group
  • 是的,我认为 strplit 或 paste 都可以,谢谢
  • 所以通常情况下,如果我在 R 脚本中,我只会将诸如 c(word1,word2,word3) 之类的向量中的单词分开,以使我的“成绩”功能起作用,所以我基本上想要最好的例如,如果用户想要搜索“word1,word2,word3”而不是“word1”,则可以通过我闪亮的应用程序中的文本输入来完成此操作

标签: r shiny


【解决方案1】:

您可以使用unlist(strsplit(input$taxa, ","))。但是,如果分类群的选择是详尽的,则最好使用 selectInput()multiple = T。这样您就不需要strsplit,而且您可以完全控制输入的字词。

无论如何,这是strsplit 的方式-

library(shiny)

shinyApp(
  ui = fluidPage(
    textInput("words", "Enter Words"),
    verbatimTextOutput("test")
  ),
  server = function(input, output, session) {
    output$test <- renderPrint({
      words <- unlist(strsplit(input$words, ",")) # get words separated by ','
      paste0(words, "_", seq_along(words)) # some random function
    })
  }
)

应用快照 -

【讨论】:

  • 非常感谢,这真的很有帮助,unlist 解决了一切
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-10
  • 1970-01-01
  • 1970-01-01
  • 2021-10-25
相关资源
最近更新 更多