Отображение data.frame с математической нотацией в заголовке таблицы. R Markdown html output

Скажем, я хотел бы отобразить таблицу коэффициентов из нескольких уравнений в файле R Markdown (вывод html).

Я бы хотел, чтобы таблица выглядела примерно так:

Но я не могу понять, как сказать R Markdown для анализа имен столбцов в таблице.

Самое близкое, что я получил, - это хакерское решение, использующее cat для печати пользовательских таблиц из моего data.frame... не идеально. Есть лучший способ сделать это?

Вот как я создал изображение выше, сохраняя мой файл как.Rmd в RStudio.

---
title: "Math in R Markdown tables"
output:
  html_notebook: default
  html_document: default
---

My fancy table

```{r, echo=FALSE, include=TRUE, results="asis"}
# Make data.frame
mathy.df <- data.frame(site = c("A", "B"), 
                       b0 = c(3, 4), 
                       BA = c(1, 2))

# Do terrible things to print it properly
cat("Site|$\\beta_0$|$\\beta_A$")
cat("\n")
cat("----|---------|---------\n")

for (i in 1:nrow(mathy.df)){
  cat(as.character(mathy.df[i,"site"]), "|", 
      mathy.df[i,"b0"], "|", 
      mathy.df[i,"BA"], 
      "\n", sep = "")
}
```

1 ответ

Решение

Ты можешь использовать kable() И его escape возможность форматировать математические обозначения (см. этот ответ на связанный вопрос). Затем вы назначаете свои математические заголовки в качестве имен столбцов, и вот вам:

---
title: "Math in R Markdown tables"
output:
  html_notebook: default
  html_document: default
---

My fancy table

```{r, echo=FALSE, include=TRUE, results="asis"}
library(knitr)

mathy.df <- data.frame(site = c("A", "B"), 
                       b0 = c(3, 4), 
                       BA = c(1, 2))

colnames(mathy.df) <- c("Site", "$\\beta_0$", "$\\beta_A$")

kable(mathy.df, escape=FALSE)
```

введите описание изображения здесь

Другие вопросы по тегам