R Language
Создание отчетов с помощью RMarkdown
Поиск…
Печать таблиц
Существует несколько пакетов, которые позволяют выводить данные в виде таблиц HTML или LaTeX. Они в основном отличаются гибкостью.
Здесь я использую пакеты:
- knitr
- xtable
- потворствовать
Для документов HTML
---
title: "Printing Tables"
author: "Martin Schmelzer"
date: "29 Juli 2016"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(knitr)
library(xtable)
library(pander)
df <- mtcars[1:4,1:4]
```
# Print tables using `kable`
```{r, 'kable'}
kable(df)
```
# Print tables using `xtable`
```{r, 'xtable', results='asis'}
print(xtable(df), type="html")
```
# Print tables using `pander`
```{r, 'pander'}
pander(df)
```
Для документов в формате PDF
---
title: "Printing Tables"
author: "Martin Schmelzer"
date: "29 Juli 2016"
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(knitr)
library(xtable)
library(pander)
df <- mtcars[1:4,1:4]
```
# Print tables using `kable`
```{r, 'kable'}
kable(df)
```
# Print tables using `xtable`
```{r, 'xtable', results='asis'}
print(xtable(df, caption="My Table"))
```
# Print tables using `pander`
```{r, 'pander'}
pander(df)
```
Как я могу остановить xxtable печать комментария перед каждой таблицей?
options(xtable.comment = FALSE)
Включая команды Preample LaTeX
Существует два возможных способа включения команд преамбулы LaTeX (например, \usepackage
) в документе RMarkdown.
1. Использование header-includes
опции YAML header-includes
:
---
title: "Including LaTeX Preample Commands in RMarkdown"
header-includes:
- \renewcommand{\familydefault}{cmss}
- \usepackage[cm, slantedGreek]{sfmath}
- \usepackage[T1]{fontenc}
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, external=T)
```
# Section 1
As you can see, this text uses the Computer Moden Font!
2. Включение внешних команд с includes
в in_header
includes
, in_header
---
title: "Including LaTeX Preample Commands in RMarkdown"
output:
pdf_document:
includes:
in_header: includes.tex
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, external=T)
```
# Section 1
As you can see, this text uses the Computer Modern Font!
Здесь содержимое include.tex - это те же три команды, которые мы включили в header-includes
.
Создание нового шаблона
Возможный третий вариант - написать собственный шаблон LaTex и включить его в template
. Но это охватывает гораздо больше структуры, чем только преамбулу.
---
title: "My Template"
author: "Martin Schmelzer"
output:
pdf_document:
template: myTemplate.tex
---
В том числе библиографии
Каталог bibtex cna легко включается в bibliography:
опций YAML bibliography:
Определенный стиль для библиографии можно добавить с biblio-style:
Ссылки добавляются в конце документа.
---
title: "Including Bibliography"
author: "John Doe"
output: pdf_document
bibliography: references.bib
---
# Abstract
@R_Core_Team_2016
# References
Основная структура документа R-markdown
Кодовые фрагменты кода R-markdown
R-markdown - это файл с разметкой со встроенными блоками R-кода, называемыми фрагментами . Существует два типа фрагментов кода R: встроенный и блок .
Встроенные фрагменты добавляются с использованием следующего синтаксиса:
`r 2*2`
Они оцениваются и вставляют свой ответ на результат.
Блок- фрагменты имеют другой синтаксис:
```{r name, echo=TRUE, include=TRUE, ...}
2*2
````
И у них есть несколько возможных вариантов. Вот основные (но есть и многие другие):
- echo (boolean) управляет тем, что код внутри блока будет включен в документ
- включают (логические) элементы управления, которые должны быть включены в документ
- fig.width (numeric) устанавливает ширину выходных данных
- fig.height (числовое значение) задает высоту выходных данных
- fig.cap (символ) устанавливает подписи к рисункам
Они написаны в простом формате tag=value
, как в приведенном выше примере.
Пример документа R-markdown
Ниже приведен базовый пример файла R-markdown, иллюстрирующий, как фрагменты кода R встроены в r-уценку.
# Title #
This is **plain markdown** text.
```{r code, include=FALSE, echo=FALSE}
# Just declare variables
income <- 1000
taxes <- 125
```
My income is: `r income ` dollars and I payed `r taxes ` dollars in taxes.
Below is the sum of money I will have left:
```{r gain, include=TRUE, echo=FALSE}
gain <- income-taxes
gain
```
```{r plotOutput, include=TRUE, echo=FALSE, fig.width=6, fig.height=6}
pie(c(income,taxes), label=c("income", "taxes"))
```
Преобразование R-уценки в другие форматы
Пакет R knitr
можно использовать для оценки фрагментов R внутри файла R-markdown и превращения его в обычный файл разметки.
Для превращения файла R-markdown в файл pdf / html необходимы следующие шаги:
- Преобразуйте файл R-markdown в файл уценки с помощью
knitr
. - Преобразуйте полученный файл разметки в pdf / html с помощью специализированных инструментов, таких как pandoc .
В дополнение к вышеуказанному пакету knitr
есть функции-обертки knit2html()
и knit2pdf()
которые могут использоваться для создания окончательного документа без промежуточного шага вручную, преобразующего его в формат уценки:
Если приведенный выше примерный файл был сохранен как income.Rmd
его можно преобразовать в pdf
файл, используя следующие команды R:
library(knitr)
knit2pdf("income.Rmd", "income.pdf")
Окончательный документ будет похож на тот, который приведен ниже.