Есть ли способ обеспечить видимость символов Юникода при использовании таблицы kable в операторе печати - при вязании в HTML - PullRequest
3 голосов
/ 23 сентября 2019

Я не могу получить символы юникода, которые будут отображаться при привязке таблицы kable к html, когда kable отображается с помощью print.Примечание. Мне нужно использовать kable в операторе print для итерации по нескольким сайтам (кажется, что kable не работает в цикле без использования print).

Символы Юникода отображаются правильно, когда таблица kableпросматривается непосредственно в консоли Rstudio и при вязании, когда не отображается с помощью вязания.

При отображении с печатью оно отображается правильно в консоли, но не при вязании.Появляется (в html инспекторе символы юникода преобразуются в <..> при вязании.

У меня есть:

  • , включенные как результаты = 'asis'
  • used escape = FALSE в kable ()
  • использовал html, эквивалентный U + 2190, в моей таблице (например, ")")

    # ----

     title: "Example of Unicode symbols with kable and print"
     output: html_document
     #----
    
    #```{r setup, include=FALSE}
    knitr::opts_chunk$set(echo = TRUE)
    #```
    
    
    #```{r dataset, , include=FALSE}
    library(tidyr)
    library(kableExtra)
    library(purrr)
    
    dat <- tibble(Symbol=c("up arrow", "down arrow", "side arrows"), 
                 htmlCode = c("&#8593;", "&#8595;", "&#8596;"))
    
    #```
    
    
    #```{r kable-tbl, results='asis'}
    tbl_fun <- function(df){
      tbl <- df %>%  kable(escape = F) %>%
      kable_styling(bootstrap_options = c("hover", "condensed"), 
                    full_width = F,  position = "left", fixed_thead = T)
    
      tbl
    }
    
    #this works when knit and when run in Rstudio console directly
    tbl_fun(dat)
    
    #when wrapped in a print function it works when run in Rstudio console directly 
    #but not when knit to html
    print_kable <- function(df) {
            tbl_fun(dat) %>%
                print(format = 'html')
    }
    
    print_kable(dat)
    
    
    #The above was a simplification - in my code I eventually want to iterate over 
    #many parameters, which is why I need to wrap in a print statement....
    #walk(.x = unique(dat$Site), print_kable)
    #```
    
...