R 如何在一个闪亮的应用程序中创建一个文本输入,以接收由逗号分隔的多个单词?

R 如何在一个闪亮的应用程序中创建一个文本输入,以接收由逗号分隔的多个单词?,r,shiny,R,Shiny,所以我有一个闪亮的应用程序和一个文本输入,它接收一个单词作为一个函数的输入,它在UI中看起来像这样: textInputAddon(inputId="taxa",addon=icon("search"), label=tags$h4(tags$strong("Enter the name of the taxonomic group:")),placeholder="Example: Cetacea") 然后在服务器中,输入中提交的单词用于下载t

所以我有一个闪亮的应用程序和一个文本输入,它接收一个单词作为一个函数的输入,它在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)
        }
      )
    }
  )
taxanput您可以使用
unlist(strsplit(输入$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
    })
  }
)
库(闪亮)
shinyApp(
ui=fluidPage(
文本输入(“文字”,“输入文字”),
逐字输出(“测试”)
),
服务器=功能(输入、输出、会话){
输出$test您可以使用
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
    })
  }
)
库(闪亮)
shinyApp(
ui=fluidPage(
文本输入(“文字”,“输入文字”),
逐字输出(“测试”)
),
服务器=功能(输入、输出、会话){

output$test您是否尝试过strsplit
?我没有,谢谢,我会尝试一下。但是如果有人只使用一个单词作为输入,它是否仍然有效?我不清楚需要什么。您是否尝试过“groupyes,我想strplit或paste都可以,谢谢通常如果我在R脚本中,我会在向量式c(word1,word2,word3)让我的“分数”功能发挥作用,因此我基本上希望通过我闪亮的应用程序中的文本输入来实现这一点,如果用户希望搜索“word1,word2,word3”,而不仅仅是“word1”例如,您是否尝试过strsplit
?我没有,谢谢,我会尝试一下。但是如果有人只使用一个单词作为输入,它还会起作用吗?我不清楚需要什么。您是否正在尝试“组”是的,我想strplit或paste都会起作用,谢谢通常如果我在R脚本中,我只会在向量式c(word1,word2,word3)让我的“分数”功能发挥作用,因此我基本上希望通过我闪亮的应用程序中的文本输入来实现这一点,如果用户希望搜索“word1,word2,word3”,而不仅仅是“word1”例如,非常感谢,这真的很有帮助,无列表解决了所有问题。非常感谢,这真的很有帮助,无列表解决了所有问题