library(knitr) library(tikzDevice) activate_tikz <- function() { # tikz plots options options(tikzDefaultEngine = "xetex") # cash font metrics for speed: # options(tikzMetricsDictionary = "./tikz_metrics") add_xelatex <- c("\\defaultfontfeatures{Ligatures=TeX, Scale=MatchLowercase}", "\\setmainfont{Linux Libertine O}", "\\setmonofont{Linux Libertine O}", "\\setsansfont{Linux Libertine O}", "\\newfontfamily{\\cyrillicfonttt}{Linux Libertine O}", "\\newfontfamily{\\cyrillicfont}{Linux Libertine O}", "\\newfontfamily{\\cyrillicfontsf}{Linux Libertine O}") options(tikzXelatexPackages = c(getOption("tikzXelatexPackages"), add_xelatex)) # does remove warnings: # it is important to remove fontenc package wich is loaded by default options(tikzUnicodeMetricPackages = c("\\usetikzlibrary{calc}", "\\usepackage{fontspec, xunicode}", add_xelatex)) opts_chunk$set(dev = "tikz", dev.args = list(pointsize = 11)) } activate_png <- function() { opts_chunk$set(dev = "png", dpi = 300) } colFmt <- function(x, color) { outputFormat <- opts_knit$get("rmarkdown.pandoc.to") if (outputFormat == "latex") { result <- paste0("\\textcolor{", color, "}{", x, "}") } else if (outputFormat %in% c("html", "epub")) { result <- paste0("<font color='", color, "'>", x, "</font>") } else { result <- x } return(result) } outputFormat <- opts_knit$get("rmarkdown.pandoc.to") if (outputFormat == "latex") { # activateTikz() activate_png() # другую тему для ggplot2 выставить? }
library(tidyverse) # рабочие кони library(sandwich) # оценка Var для гетероскедастичности library(lmtest) # тест Бройша-Пагана library(data.table) # манипуляции с данными library(reshape2) # преобразование длинных таблиц в широкие library(broom)
Если ты используешь R, то ты поймёшь, что есть куча других полезных программ!
...
...
...
...
...
...
...
...
Разбить на большее количество глав!!!
Что-то убрать? чтобы была ещё одна книжка? :)
Общие принципы:
Неформальный стиль, на "ты"
Больше картинок. Лицензия?
Больше гипер-ссылок.
Буква ё
обязательна.
Пакет bookdown
с помощью которого написана эта книжка ещё немного сыроват. В процессе работы я обнаружил, что:
Порой помогает удаление промежуточных файлов и компиляция заново.
После неанглоязычного названия главы обязательно должна идти метка {#label}
.
Каждый .Rmd
файл содержит только одну главу. Глава обозначается заголовком первого уровня #
.
Сослаться на главу или подраздел можно с помощью \@ref(label)
.
Сослаться на источник литературы можно с помощью [@reference]
Автодобавление пакетов
# automatically create a bib database for R packages knitr::write_bib(c( .packages(), 'bookdown', 'knitr', 'rmarkdown' ), 'packages.bib')
глючит на "M"uller
MOBI
книг:Под macos:
Поставить менеджер пакетов Homebrewer.
```{bash, "mobi_install", eval=FALSE} brew update brew cask install calibre brew cask install kindlegen
В предисловии ```{bash, "kindlegen_setup", eval=FALSE} bookdown::kindlegen: epub: _book/r_manual.epub
ругается
или ```{bash, "calibre_setup", eval=FALSE} bookdown::calibre: input: _book/r_manual.epub output: _book/r_manual.mobi
ругается Если надо изобразить yaml в чанке кода, пока пишу, что он bash 7. заставляем травис работать Создаём новый токен на [github](https://github.com/settings/tokens): кликнуть по иконке пользователя, далее settings - token - generate new token. ```{bash, "github_token", eval=FALSE} sudo gem install travis travis encrypt GITHUB_TOKEN=[token from githum]
Именно переменная GITHUB_TOKEN
должна использоваться для того, чтобы обращаться к гитхабу, т.е. клонируется ветка gh-pages командой
```{bash, "token_use", eval=FALSE}
git clone -b gh-pages https://${GITHUB_TOKEN}@github.com/${TRAVIS_REPO_SLUG}.git book-output
Переменная `TRAVIS_REPO_SLUG` будет сама определена сервисом Travis и будет равна названию репозитория. Добавляем получившуюся закодированную строку в `.travis.yml`. Забавно, что похоже используется рандомный ключ для шифрования и поэтому зашифрованная строка каждый раз выходит разной. Можно не шифровать её, а добавить в travis-ci.org/user/repo/settings Для быстрой компиляции добавляем в `.travis.yml` указание, что мы будем использовать готовые бинарные пакеты R: ```{bash, "binary_packages", eval=FALSE} r_binary_packages: - ggplot2 - dplyr - rio
Для того, чтобы эти опции не были проигнорированы .travis.yml
должен содержать строку sudo: required
.
Если бинарный пакет слишком старый или вообще отсутствует, можно проинсталлировать его обычным образом, для этого добавляем строки
```{bash, "non_binary_packages", eval=FALSE} r_packages: - devtools - rio
8. Красный шрифт по мотивам [http://stackoverflow.com/questions/29067541](http://stackoverflow.com/questions/29067541) ```r colFmt <- function(x, color) { outputFormat <- opts_knit$get("rmarkdown.pandoc.to") if (outputFormat == "latex") { result <- paste0("\\textcolor{", color, "}{", x, "}") } else if (outputFormat %in% c("html", "epub")) { result <- paste0("<font color='", color, "'>", x, "</font>") } else { result <- x } return(result) }
Then you can use it inline like this: r colFmt("MY RED TEXT", "red")
_output.yaml
это просто output:
кусок из yaml
-части файла index.Rmd
. Поэтому можно внести _output.yaml
обратно в index.Rmd
, чтобы все настройки были в одном месте. Формально _output.yaml
действует на все .Rmd
документы в папке, но что там будет кроме учебника в целом. Разве что отдельные главы компилировать :)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.