闪亮:如何输入用双引号(“)分隔的文本字符串列表

Posted

技术标签:

【中文标题】闪亮:如何输入用双引号(“)分隔的文本字符串列表【英文标题】:Shiny: how to input a list of text strings that are delimited with double-quotes (") 【发布时间】:2016-02-15 04:46:41 【问题描述】:

我遇到了文本输入问题。默认似乎是 textInput() 函数输出带有“”的文本。我正在尝试将多个单词输入 textInput(),每个单词周围都有一个“”。例如:

而不是将 test1,test2,test3 输出为:“test1,test2,test3”, 我想要 "test1","test2","test3"

我尝试将 cat() 和 paste() 与 \ 结合使用来解决它,但 renderDatatable() 函数似乎不接受。

这是我迄今为止尝试过的:

    ui<- fluidPage(
    textInput(inputId = "words",
              label = "Enter search terms, separated by commas", 
              value = ""),
    titlePanel("List of Claims"),
    fluidRow(
        dataTableOutput(outputId = "table")
    )

)
server <- function(input,output)

    reactivedata <- reactive(
        input$words
    )

    output$table <- renderDataTable(
        inputtext<-function(x) paste(eval(parse(text=input$words)))
        claiminfo2$xxtotal <-rowSums(claiminfo2[,inputtext(X)])
        claiminfo3 <- claiminfo2[,c(1,length(claiminfo2))]
        claiminfo4 <- subset(claiminfo3,claiminfo3[,2] >0)
        claiminfo4
    )



shinyApp(ui = ui, server = server)

claiminfo2 是一个以单词作为列标题的文档术语矩阵。我试图让用户输入单词,然后应用程序通过claiminfo2[,c(words)] 搜索这些列。然而,而不是得到 claiminfo2[,c("word1","word2")],我得到 claiminfo2[,c("word1 , word2")] 不行

【问题讨论】:

您应该添加一个可重现的小示例(一个闪亮的小应用),以便我们测试解决方案。 这样够好吗? 你可以看到这个page对你的问题有一个很好的回答! 【参考方案1】:

您可以在server.R 中使用strsplit 来创建用于子集数据框的单词向量。这是一个示例(ui.R 未更改):

claiminfo2 <- data.frame(a=letters[1:4],b=letters[5:8],d=letters[9:12])
    server <- function(input,output)

            output$table <- renderDataTable(
                    claiminfo2[,unlist(strsplit(input$words,",")),drop=FALSE]

            )

另一个选项是使用selectize 输入,这将为用户提供有关数据框中哪些列的建议。这是一个例子:

library(shiny)
claiminfo2 <- data.frame(a=letters[1:4],b=letters[5:8],d=letters[9:12])

ui<- fluidPage(
        titlePanel("List of Claims"),
        fluidRow(
                dataTableOutput(outputId = "table")
        ),
        selectInput(inputId = "words",
                       label = "Enter search terms, separated by commas",
                       choices=colnames(claiminfo2), multiple=TRUE, selectize=TRUE)

)
server <- function(input,output)

        output$table <- renderDataTable(
                if(!is.null(input$words)) 
                claiminfo2[,unlist(strsplit(input$words,",")),drop=FALSE]
                

        )



shinyApp(ui = ui, server = server)

【讨论】:

以上是关于闪亮:如何输入用双引号(“)分隔的文本字符串列表的主要内容,如果未能解决你的问题,请参考以下文章

用双引号封装输出

如何使用`sed`替换用双引号括住目录的单引号

Pig — 如何加载包含用双引号括起来并用逗号分隔的字段的 CSV 文件

opencsv写入时去掉双引号

在excel函数公式中,啥时候要用双引号、单引号,啥时候要用连接符&?

请问,json的键也要用双引号吗?