R Language
R в LaTeX с knitr
Поиск…
Синтаксис
- << internal-code-chunk-name, options ... >> =
# R Code Here
@ - \ Sexpr {#R Code Here}
- << read-external-R-file >> =
read_chunk ( 'г-file.R')
@
<< external-code-chunk-name, options ... >> =
@
параметры
вариант | подробности |
---|---|
эхо | (TRUE / FALSE) - включить ли исходный код R в выходной файл |
сообщение | (TRUE / FALSE) - включить ли сообщения из выполнения R-источника в выходной файл |
предупреждение | (TRUE / FALSE) - включить ли предупреждения из выполнения R-источника в выходной файл |
ошибка | (TRUE / FALSE) - включить ли ошибки из выполнения R-источника в выходной файл |
кэш | (TRUE / FALSE) - следует ли кэшировать результаты выполнения R-источника |
fig.width | (числовой) - ширина графика, сгенерированного при выполнении R-источника |
fig.height | (числовой) - высота графика, сгенерированного при выполнении R-источника |
замечания
Knitr - это инструмент, который позволяет нам переплетать естественный язык (в виде LaTeX) и исходный код (в форме R). В общем, концепция перемежающегося естественного языка и исходного кода называется грамотным программированием . Поскольку файлы knitr содержат смесь LaTeX (традиционно размещенную в .tex-файлах) и R (традиционно размещенную в .R-файлах), требуется новое расширение файла R noweb (.Rnw). Файлы .Rnw содержат смесь LaTeX и R-кода.
Knitr позволяет создавать статистические отчеты в формате PDF и является ключевым инструментом для достижения воспроизводимых исследований .
Компилирование файлов .Rnw в PDF - это двухэтапный процесс. Во-первых, нам нужно знать, как выполнить код R и отобразить вывод в формате, который может понять компилятор LaTeX (процесс называется «kniting»). Мы делаем это, используя пакет knitr. Команда для этого показана ниже, если вы установили пакет knitr :
Rscript -e "library(knitr); knit('r-noweb-file.Rnw')
Это приведет к созданию нормального файла .tex (например, r-noweb.tex в этом примере), который затем можно преобразовать в файл PDF, используя:
pdflatex r-noweb-file.tex
R в латексе с нарушением ввода текста Knitr и кода
Knitr - это R-пакет, который позволяет нам смешивать R-код с кодом LaTeX. Один из способов добиться этого - это внешние куски кода. Внешние фрагменты кода позволяют нам разрабатывать / тестировать R-скрипты в среде разработки R, а затем включать результаты в отчет. Это мощный организационный метод. Этот подход показан ниже.
# r-noweb-file.Rnw
\documentclass{article}
<<echo=FALSE,cache=FALSE>>=
knitr::opts_chunk$set(echo=FALSE, cache=TRUE)
knitr::read_chunk('r-file.R')
@
\begin{document}
This is an Rnw file (R noweb). It contains a combination of LateX and R.
One we have called the read\_chunk command above we can reference sections of code in the r-file.R script.
<<Chunk1>>=
@
\end{document}
При использовании этого подхода мы сохраняем наш код в отдельном файле R, как показано ниже.
## r-file.R
## note the specific comment style of a single pound sign followed by four dashes
# ---- Chunk1 ----
print("This is R Code in an external file")
x <- seq(1:10)
y <- rev(seq(1:10))
plot(x,y)
R в латексе с кусками Knitr и Inline Code
Knitr - это R-пакет, который позволяет нам смешивать R-код с кодом LaTeX. Один из способов добиться этого - встроенные фрагменты кода. Это утверждение показано ниже.
# r-noweb-file.Rnw
\documentclass{article}
\begin{document}
This is an Rnw file (R noweb). It contains a combination of LateX and R.
<<my-label>>=
print("This is an R Code Chunk")
x <- seq(1:10)
@
Above is an internal code chunk.
We can access data created in any code chunk inline with our LaTeX code like this.
The length of array x is \Sexpr{length(x)}.
\end{document}
R в LaTex с Knitr и внутренними кодовыми фрагментами
Knitr - это R-пакет, который позволяет нам смешивать R-код с кодом LaTeX. Один из способов добиться этого - внутренние куски кода. Это утверждение показано ниже.
# r-noweb-file.Rnw
\documentclass{article}
\begin{document}
This is an Rnw file (R noweb). It contains a combination of LateX and R.
<<code-chunk-label>>=
print("This is an R Code Chunk")
x <- seq(1:10)
y <- seq(1:10)
plot(x,y) # Brownian motion
@
\end{document}