Search code examples
rpdflatexkablekableextramiktex

Adding arrow or figure in kable cell?


Is it possible to add an up or down arrow in a kable cell, with a pdf_output? Has anyone had luck adding any special figures into a kable cell?

My header:

---
title: "markdownTest"
header-includes:
- \usepackage{booktabs}
- \usepackage{longtable}
- \usepackage{array}
- \usepackage{multirow}
- \usepackage{wrapfig}
- \usepackage{float}
- \usepackage{colortbl}
- \usepackage{pdflscape}
- \usepackage{tabu}
- \usepackage{threeparttable}
- \usepackage{threeparttablex}
- \usepackage[normalem]{ulem}
- \usepackage{makecell}
- \usepackage{xcolor}
- \usepackage{fontspec}
- \setmainfont{Calibri}
output: 
  pdf_document:
    latex_engine: xelatex
---

Solution

  • You can run the following statements:

    ---
    title: "kable arrow"
    author: "Alessio Benedetti"
    date: "17/11/2019"
    output: html_document
    ---
    
    ```{r}
    library(knitr)
    df <- data.frame(
      stock = c('Apple','Amazon','Microsoft','Tesla'),
      value = c(300,200,150,250),
      difference = c(50,-10,20,-15)
    )
    df$trend <- ifelse(df$difference >0,
                       '![](https://www.picgifs.com/glitter-gifs/a/arrows/picgifs-arrows-110130.gif)',
                       '![](https://www.picgifs.com/glitter-gifs/a/arrows/picgifs-arrows-30184.gif)'
                      )
    
    kable(df)
    ```
    

    enter image description here

    EDIT: for knitting in pdf you need to use png files (eg: https://images.app.goo.gl/1Qt85stUQggdPRwx7):

    ---
    title: "kable arrow"
    author: "Alessio Benedetti"
    date: "17/11/2019"
    output:
      pdf_document: default
      html_document: default
    ---
    
    ```{r}
    library(knitr)
    df <- data.frame(
      stock = c('Apple','Amazon','Microsoft','Tesla'),
      value = c(300,200,150,250),
      difference = c(50,-10,20,-15)
    )
    df$trend <- ifelse(df$difference >0,
                       '![](arrow_up.png)',
                       '![](arrow_down.png)'
                      )
    
    kable(df)
    ```
    

    enter image description here