我正在开发一个应用程序来自动化工作流程,我需要在每行用户输入的前面添加“#”。因此,如果用户输入:
Line1
Line4
我希望renderText()显示:
#' Line1
#' Line4
下面是需要更改的简单代码,以便在每行的开头添加“#”。我可以将它添加到第一行,只是不确定如何添加到其余部分。
if (interactive()) {
ui <- fluidPage(
textAreaInput("caption", "Caption", "Data Summary", width = "1000px"),
verbatimTextOutput("value")
)
server <- function(input, output) {
output$value <- renderText({ paste("#' ",input$caption, sep = "") })
}
shinyApp(ui, server)
}
答案 0 :(得分:1)
基于正则表达式的条件粘贴来拯救。按新行拆分输入字符,然后按前缀&#39;#&#39;只有当有一个字母或数字并用换行符返回并打印回Shiny。
> if (interactive()) {
+
+ ui <- fluidPage(
+ textAreaInput("caption", "Caption", "Data Summary", width = "1000px"),
+ verbatimTextOutput("value")
+ )
+ server <- function(input, output) {
+
+ output$value <- renderText({ paste0(lapply(unlist(strsplit(input$caption,'\n')),function(x){ifelse(grepl('[A-z0-9]',x),paste0('#',x),x)}), collapse = '\n') })
+ }
+ shinyApp(ui, server)
+
+ }