Как выделить слово в шинидашборде в R? - PullRequest
1 голос
/ 17 февраля 2020

Я нашел несколько предложений о том, как выделить слово в других контекстах, но они не помогли моей проблеме. Вот мой код:


data<-data.frame(X=c("This is an example", "This is not"))
wordlist<-c("This","example","not")

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(sidebarMenu(selectInput("stemmedw", label="Find A Word : ",wordlist))
  ),
  dashboardBody("Title", tabPanel("News",uiOutput("news"))) 
)

server <- function(input, output) {
  output$news <- renderUI({
    pos<-unlist(gregexpr(input$stemmedw,data$X,fixed=TRUE))!=-1
    base<-data.frame(X=data[pos,], stringsAsFactors = FALSE)
    m2 <- data.frame(X=data[pos,], stringsAsFactors = FALSE)
    n<-dim(m2)[1]

    a2 <- list()
    for(i in seq_len(n)) {
      a2[[i]] <- valueBox(i,lapply(m2, "[[", i),  width = 100,color="blue")
    }
    tagList(a2)
  })
}


shinyApp(ui = ui, server = server)

Я бы хотел выделить только выделенное слово в тексте в valueBox. Может быть другой цвет фона, жирный стиль и / или подчеркивание. Ths

1 Ответ

0 голосов
/ 17 февраля 2020

Вот один из способов использования жирного шрифта с HTML, просто в комплекте с нужными тегами htmls:

data<-data.frame(X=c("This is an example", "This is not"))
wordlist<-c("This","example","not")

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(sidebarMenu(selectInput("stemmedw", label="Find A Word : ",wordlist))
  ),
  dashboardBody("Title", tabPanel("News",uiOutput("news"))) 
)

server <- function(input, output) {
  output$news <- renderUI({
    pos<-unlist(gregexpr(input$stemmedw,data$X,fixed=TRUE))!=-1
    base<-data.frame(X=data[pos,], stringsAsFactors = FALSE)
    m2 <- data.frame(X=data[pos,], stringsAsFactors = FALSE)
    n<-dim(m2)[1]

    a2 <- list()

    for(i in seq_len(n)) {
      a2[[i]] <- valueBox(i, HTML(gsub(input$stemmedw, paste0("<b>", input$stemmedw, "</b>"), m2$X[[i]], fixed = TRUE)), width = 100, color = "blue")
    }
    tagList(a2)
  })
}


shinyApp(ui = ui, server = server)
...