Установите имена столбцов и заголовки (выше) в странные символы для таблиц с knitr, kableExtra и Latex в R уценке - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь создать таблицу в Rmarkdown (для pdf) на основе набора данных diamonds, и я хочу изменить некоторые имена столбцов и заголовки над именами столбцов, я хотел бы знать, как я могу установить некоторые заголовки вкурсив или полужирный, а некоторые заголовки должны быть символом (например, для частичного квадрата эта) или полной формулой.Я включил свой R-код (и я установил латекс) с таблицей в виде рисунка (еще не настроен).

```{r setup, include=FALSE}

setwd("~/Desktop/Tables") 
knitr::opts_chunk$set(echo = FALSE)
# global options
options(knitr.table.format = "latex") 
# show space instead of NA in tables
options(knitr.kable.NA = '')
library(tidyverse)
library(knitr)
library(kableExtra)
df = diamonds

```

```{r message=FALSE, warning=FALSE}

df_table = df %>% 
  summarise(avg = round(mean(price), 2),
            sd = round(sd(price), 2),
            n = n(),
            range = round(max(price), 2)) %>% 
  mutate(grouping = "Total") %>% 
  select(grouping, avg, sd, n, range) %>% 
  bind_rows(df %>% 
              group_by(cut) %>% 
              summarise(avg = round(mean(price), 2),
              sd = round(sd(price), 2),
              n = n(),
              range = round(max(price), 2)) %>% 
              mutate(grouping = as.character(cut)) %>% 
              select(grouping, avg, sd, n, range))

kable(df_table,
      booktabs = TRUE,
      linesep = "",
      col.names = c("Grouping", "M in italic", "SD in italic", "N not 
italic", "some weird formula for the range" )) %>%
  kable_styling(latex_options = c("HOLD_position", "scale_down")) %>% 
  add_header_above(c(" " = 1, "the formula for the variance" = 4))

```

enter image description here

1 Ответ

0 голосов
/ 29 мая 2018

Установите escape = FALSE в своем вызове на kable и add_header_above и используйте LaTeX в заголовках столбцов.Я должен признать, что для меня загадка, сколько именно обратных слешей нужно добавить, чтобы получить желаемый результат.

kable(df_table,
      booktabs = TRUE,
      linesep = "",
      col.names = c("Grouping", "$M$", "$SD$", "N", "$\\eta$"), escape = FALSE) %>%
  kable_styling(latex_options = c("HOLD_position", "scale_down")) %>% 
  add_header_above(c(" " = 1, "$\\\\operatorname{Var}[X]$" = 4), escape = FALSE)

enter image description here

...