Выделите текст на основе списка в R блестящий - PullRequest
0 голосов
/ 11 декабря 2018

Я хотел бы выделить / раскрасить часть строки на основе списка в R блестящий.У меня есть следующий код:

library(shiny)


ui <- fluidPage(

      mainPanel(
        fluidRow(
          box(title="text",status="primary", solidHeader = TRUE, align = "left", width = 4,
              verbatimTextOutput("text"))))
)

server <- function(input, output) {

   output$text <- renderText({

     print("ABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRS")

   })
}


shinyApp(ui = ui, server = server)

Как я могу покрасить / выделить части строки, используя список:

highlight <- c("GHIJ", "MNOP", "STUV")

Список меняется в зависимости от ввода пользователя.

РЕДАКТИРОВАТЬ: я смог выделить отдельные части строки, используя следующий код:

library(shiny)
library(magrittr)
library(tableHTML)


ui <- fluidPage(

  mainPanel(
    fluidRow(
      box(title="Sequence",status="primary", solidHeader = TRUE, align = "left", width = 6,
        htmlOutput("text")),
        tags$style(type="text/css", "#text {word-break: break-all;}")))
)


server <- function(input, output) {

  output$text <- renderText({

    text2 <- c("ABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRS") 
    text2 %<>% stringr::str_replace_all(c('MNOPQR' = '<span style="background-color:yellow">MNOPQR</span>'))




    print(text2)

  })
}

У меня есть большой список строк, которые я хочу выделить, которые изменяются в зависимости от пользователявход.Я хочу обернуть функцию str_replace_all в цикл, просматривая все строки в списке.

Примерно так:

words <- c("ABCD", "MNOP", "GHIJ")

    for (word in words){

    text2 %<>% stringr::str_replace_all(c('word' = '<span style="background-color:yellow">word</span>'))

    }

но у меня не получается работать.

1 Ответ

0 голосов
/ 11 декабря 2018

Как я понимаю, здесь есть несколько шагов.Сначала нужно найти строки, которые нужно выделить, используя grep, затем разделить исходную строку и, наконец, применить html-тег, например

tags$span(style="color:red", x) 

для красного цвета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...