Opcje fragmentów

Podczas pracy z fragmentami mamy dużą elastyczność, a tę elastyczność widać po wielu opcjach, które możemy dostosować. Tutaj wymienimy tylko te najbardziej popularne. Aby uniknąć dołączania kodu jako danych wyjściowych, użyj echo = FALSE. Aby uniknąć wyświetlania wyników, użyj include = FALSE. Aby uniknąć oceny bloku kodu, użyj eval = FALSE. Aby uniknąć wyświetlania ostrzeżeń, użyj warning = FALSE. Aby ustawić szerokość i wysokość figury, użyj fig.height = 10 i fig.width = 10 z odpowiednimi liczbami (jednostki to cale). Wszystkie z nich mogą być użyte w nagłówku fragmentu kodu pokazanym w następujący sposób:

111{r some-label. include = TRUE, eval = FALSE}

1 + 2

“`

Globalne opcje porcji

Możesz użyć globalnych opcji porcji zamiast opcji powtarzanych lokalnych porcji. W razie potrzeby możesz przesłonić opcję porcji globalnej, określając inną opcję porcji lokalnej. Użycie następującego kodu spowodowałoby, że każdy fragment kodu miałby echo = TRUE i eva; = FALSE opcje włączone, chyba że określono inaczej w określonych blokach:

“`{r global-options}

knitr :: opts_hunk$set(echo = TRUE, eval = FALSE)

“`

Wykresy

Tworzenie wykresów za pomocą R Markdown jest tak proste, jak tworzenie w R. Właściwie nie musisz robić nic więcej; knitr jest wystarczająco inteligentny, aby zrobić to automatycznie. W razie potrzeby określ szerokość i wysokość obrazu, używając odpowiednich opcji fragmentów pokazanych w następnej sekcji. Jeśli użyjemy następującego wejścia:

“`{r basic-r-graph}

attach(mtcars)

plot(wt, mpg)

abline(lm(mpg  ~ wt)

title(„Regression of MPG on Weight”)

“`

Otrzymujemy następujący wynik:

 

Rozszerzenie Markdown o R Markdown

Jak wspomniano wcześniej, R Markdown rozszerza Markdown. Oferuje wiele funkcji, które go ulepszają. W dokumentacji R Markdowna znajduje się wiele przykładów, w których możesz zorientować się, co jest możliwe. W tej sekcji skupimy się na fragmentach kodu, tabelach, wykresach, lokalnych i globalnych opcjach fragmentów oraz buforowaniu.

Fragmenty kodu

Fragmenty kodu to po prostu standardowe bloki kodu Markdown, które mają specjalną składnię, która używa nawiasów klamrowych ({}) wzdłuż górnej linii bloku, aby wysłać metadane do knitr, o tym, jak należy traktować blok. Przesyłane metadane mają postać parametrów z klucz = wartośći. Kiedy używasz nagłówka bloku, takiego jak (“`{r chunk-label}), knitr wie, że jest to blok kodu R, który będzie identyfikowany za pomocą etykiety chunk-label. Etykieta porcji nie jest wymagana, a jeśli jej nie określisz, zostanie ona automatycznie utworzona, ale są przydatne, gdy próbujesz zapamiętać przeznaczenie bloku kodu i odwoływać się do obrazów (więcej o tym później). Na koniec należy zauważyć, że każdy kod, który piszesz w standardowym bloku kodu Markdown, nie jest w żaden sposób wykonywany, więc może być pełen błędów i nic się nie stanie. Jednak w przypadku korzystania z fragmentów kodu R Markdown kod w bloku języka R jest faktycznie oceniany podczas kompilowania dokumentu, a jeśli zawiera on błędy, dokument lub prezentacja nie zostaną pomyślnie skompilowane, dopóki ich nie naprawisz. Jeśli użyjemy następującego wejścia:

“`{r optioal-label}

1 + 2

“`

Otrzymujemy następujący wynik:

1 + 2

[1] 3

str. 233

Tabele

W nieformalnych raportach możesz po prostu wydrukować macierz lub ramkę danych, zamiast tworzyć formalną tabelę. Jeśli potrzebujesz, istnieje wiele sposobów tworzenia tabel z R Markdown, które mogą wyglądać trochę ładniej. Pokazujemy, jak używaćkable z pakietu knitr, ponieważ jest to plik najprostszy. Jeśli potrzebujesz większej kontroli, możesz spojrzeć na pakiet 􀁙􀁕􀁂􀁃􀁍􀁆, który daje Ci pełną kontrolę. Musisz upewnić się, że używasz results = „asis” we fragmencie kodu. Jeśli użyjemy następującego wejścia:

“`{r r-markdown-label, results = „asis”}

library(knitr)

x <- rnorm(100)

y <- 2 * x + rnorm(100)

coeficients <- summary(lm(y ~x)) $coef

kable(coeficients, digits = 2)

Otrzymujemy następujący wynik:

 

Matematyka

Osadzanie matematyki w Markdown jest podobne do osadzania kodu. Jednak zamiast używać znaku  (“`) użyjemy znaku dolara ($). Jeśli chcesz używać bloków matematycznych, możesz użyć dwóch (zamiast trzech) znaków dolara. Należy pamiętać, że nie jest to standardowa funkcja Markdown i chociaż R Markdown ją obsługuje, może nie być obsługiwane w innych systemach. Jeśli próbujesz stworzyć stronę internetową przy użyciu Markdown, aby móc używać kodu podobnego do LaTeX, musisz upewnić się, że system ładuje bibliotekęMathJaxdo przeglądarki.

Jeśli użyjemy następującego wejścia:

$$\Theta = \begin{pmatrix}  \ alpha & \beta \\ \gamma & \delta

\end{pmatrix}$$

Otrzymamy

Kod

Kod może być osadzony w tekście za pomocą otaczających go pojedynczych grawitów (`) lub może być używany w niezależnych blokach przy użyciu potrójnych grawitacji (“`). Opcjonalnie możesz określić język programowania w bloku kodu, aby aktywować podświetlanie składni dla tego kodu. Jeśli użyjemy następującego wejścia:

“` r

and_two_numbers <- function (x,y) {

return (x+y)

}

“`

Otrzymujemy następujący wynik:

and_two_numbers <- function (x,y) {

return (x+y)

}

Cytaty

Cytaty są bardzo przydatne, gdy próbuje się podkreślić rzeczy czytelnikom. Są również bardzo łatwe do stworzenia. Wszystko, co musisz zrobić, to poprzedzić znak większości (>), a następnie spację na początku wiersza. Jeśli użyjemy następującego wejścia:

> Spójrz głęboko w naturę, a wtedy wszystko lepiej zrozumiesz.

> -Albert Einstein

Otrzymujemy następujący wynik:

Spójrz głęboko w naturę, a wtedy wszystko lepiej zrozumiesz.

– Albert Einstein

Obrazy

Obrazy mają podobną strukturę do linków, ale są poprzedzone wykrzyknikiem (!). Nazwa obrazu (zawarta w nawiasach) jest wyświetlana tylko wtedy, gdy rzeczywistego obrazu nie ma (na przykład plik nie został znaleziony w określonej trasie). Adres URL to zastąpiona ścieżka do obrazu, który chcesz pokazać. Domyślnie rozmiar obrazu będzie możliwie największy. Przy założeniu, że obrazy znajdują się w katalogu o nazwie images w tym samym katalogu, co plik Markdown, działa następujący przykład. Jeśli użyjemy następującego wejścia:

[The R Project for Statistical Computing (./images/r.pg)

[Pact Publishing]./images/packt-publishig.png)

Otrzymujemy następujący wynik:

Linki

Aby udostępnić linki, możesz po prostu wpisać link bezpośrednio. Jeśli chcesz nazwać linki tak, aby wyświetlała się tylko nazwa, ale nie adres URL, jak te, które widzisz na stronach internetowych, możesz użyć nawiasów zawierających nazwę, po których bezpośrednio następuje nawias zawierający rzeczywisty link, w formacie „[Nazwa] ( URL) ”.

Jeśli użyjemy następującego wejścia:

[The R Project for Statistical Computing (https://www.r-project.org/)

[Pact Publishing](https://www.packtpub.com/)

Otrzymujemy następujący wynik:

The R Project for Statistical Computing

Pact Publishing

Tabele

Tabele to jedne z najbardziej kłopotliwych struktur do tworzenia przy użyciu Markdown. To powiedziawszy, nadal nie jest trudno je stworzyć. Jeśli je wyrównasz, wszystko wygląda normalnie. Jednak w większości przypadków ludzie ich nie wyrównują i wydają się nieco dziwni, jeśli nie jesteś przyzwyczajony do składni. Przez tabele bez wyrównania rozumiemy, że po elementach nie ma spacji, aby linie pionowe były wyrównane. Poniższa tabela jest tabelą wyrównaną. Jeśli użyjemy następującego wejścia:

 

Otrzymujemy następujący wynik:

Listy

Listy mogą być uporządkowane, nieuporządkowane i mogą być oznaczone jako zadania. Obejmują one większość potrzebnych przypadków i są bardzo proste w użyciu. W przypadku list uporządkowanych można użyć łączników (-) lub gwiazdek (*), a także zagnieżdżać je w celu utworzenia list zagnieżdżonych. W przypadku list uporządkowanych można używać cyfr i liter. Wreszcie, aby utworzyć listy zadań, wystarczy umieścić parę nawiasów na początku pozycji ([]). Jeśli w nawiasach znajduje się X, oznacza to, że zadanie zostało zakończone. Jeśli między nawiasami jest spacja, element nadal oczekuje. Jeśli użyjemy następującego wejścia:

  1. This i sam ordered item

                – This is a uordered item

                -This is aother unordered item

  1. This is another ordered item

                – [ ] This is a peding task

                – [X] This is a completed task

– [ ] This is another incomplete task

  1. Which contais one ordereditem

– And one unorded item

Dane wyjściowe