闪亮:如何输入用双引号(“)分隔的文本字符串列表
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)
【讨论】:
以上是关于闪亮:如何输入用双引号(“)分隔的文本字符串列表的主要内容,如果未能解决你的问题,请参考以下文章
Pig — 如何加载包含用双引号括起来并用逗号分隔的字段的 CSV 文件