Markdown és una sintaxi per crear documents en múltiples formats (HTML, PDF, WORD, etc.). És possible combinar text formatejat i codi en R. Tot i que ve instal·lat amb RStudio, si teniu algun problema podeu instal·lar el paquet RMarkdown
.
Per formatejar el text:
cursiva
negreta
codi
. Exemple: Calcula la mitjana aritmètica amb la funció mean
.
També pots incorporar enllaços a pàgines web: http://campusvirtual.ub.edu.
Per fer una cita textual:
You can have data without information, but you cannot have information without data.
Un cop preparat el document, cal compilar amb el butó Knit triant el format de sortida.
Podem provar a generar aquest mateix document en HTML, PDF o WORD. És possible que, per crear documents en PDF, necessiteu el paquet TinyTeX
.
És el que es coneix com chunks, que estan identificats amb ```{r}
a <- 5
b <- 3
c <- a+b
print(c)
## [1] 8
Un altre exemple de chunk
## speed dist
## Min. : 4.0 Min. : 2.00
## 1st Qu.:12.0 1st Qu.: 26.00
## Median :15.0 Median : 36.00
## Mean :15.4 Mean : 42.98
## 3rd Qu.:19.0 3rd Qu.: 56.00
## Max. :25.0 Max. :120.00
include = FALSE: ni el codi ni el resultat apareix en el document, però s’executa i es pot aprofitar en un altre chunk.
echo = FALSE: no es mostra el codi, però sí el resultat.
message = FALSE: evita que els missatges que genera el codi apareguin al document.
warning = FALSE: evita que els missatges de warning generats pel codi apareguin al document.
fig.cap = “…” : afegeix un títol a un resultat gràfic
Per defecte, un dataframe es veu igual que a RStudio.
head(mtcars, 10)
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
## Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
## Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
## Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
## Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
Hi ha diversos paquets que permeten fer taules. Una opció és la funció kabble
del paquet knitr
. Per exemple:
mpg | cyl | disp | |
---|---|---|---|
Mazda RX4 | 21.0 | 6 | 160 |
Mazda RX4 Wag | 21.0 | 6 | 160 |
Datsun 710 | 22.8 | 4 | 108 |
Hornet 4 Drive | 21.4 | 6 | 258 |
És possible incorporar gràfics al document. Per exemple:
El parámetro echo = FALSE
impedeix que s’imprimeixi el codi, només el gràfic.
En el següent exemple, no l’hem fet servir. Compara el resultat:
plot(cars) # També admet missatges explicatius com aquest
Relació entre temperatura i pressió
Presentarem ara un informe gràfic del retard mensual d’algunes companyies aèries.
Aquestes són les dades que hem recopilat:
Companyia | Gener | Febrer | Març | Abril | Maig | Juny | Juliol | Agost | Setembre | Octubre | Novembre | Desembre |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Alitalia | 28 | 30 | 26 | 20 | 20 | 32 | 15 | 12 | 6 | 2 | 3 | 16 |
Easyjet | 118 | 176 | 121 | 75 | 143 | 5 | 8 | 163 | 145 | 173 | 148 | 145 |
Emirates | 20 | 219 | 211 | 23 | 123 | 50 | 60 | 90 | 150 | 200 | 240 | 308 |
Iberia | 200 | 490 | 400 | 390 | 440 | 120 | 360 | 370 | 500 | 310 | 250 | 475 |
KLM | 9 | 10 | 7 | 5 | 8 | 14 | 7 | 5 | 1 | 2 | 4 | 7 |
Lufthansa | 365 | 247 | 180 | 113 | 117 | 177 | 330 | 382 | 348 | 345 | 100 | 184 |
Ryanair | 432 | 454 | 431 | 381 | 367 | 367 | 318 | 467 | 432 | 455 | 424 | 415 |
Vueling | 117 | 177 | 330 | 382 | 348 | 345 | 100 | 184 | 365 | 247 | 180 | 345 |
Mostrarem aquesta informació en un mapa de calor amb ggplot
.
# Canviem el format de les dades per elaborar el mapa de calor
library(reshape)
## Warning: package 'reshape' was built under R version 4.0.5
##
## Attaching package: 'reshape'
## The following object is masked from 'package:dplyr':
##
## rename
## The following objects are masked from 'package:tidyr':
##
## expand, smiths
delays2 <- reshape::melt(delays)
## Using Companyia as id variables
p <- ggplot(delays2, aes(variable, Companyia, fill= value)) +
geom_tile()
print(p)
Ordenem alfabèticament les companyies.
# Primer fem l'ordenació
delays2$Companyia <- with(delays2,factor(Companyia,levels = rev(sort(unique(Companyia)))))
# A continuació, repetim el gràfic, ara ja ordenat
p2 <- ggplot(delays2, aes(variable, Companyia, fill= value)) +
geom_tile()
p2
Afegim alguns títols
p3 <- p2+xlab("Mes de l'any") +
ylab("Companyia aèria") +
ggtitle("Retard mensual") +
labs(fill = "Mitjana en minuts")
p3
Pots triar altres palettes de colors:
p3+ scale_fill_distiller(palette = 'Accent')
Pots provar totes aquestes:
O introduir colors manualment:
p3+scale_fill_gradient(low="white",high="steelblue")
Ubiquem la Facultat en un mapa:
Help > Cheatsheets
Publicar documents fets amb R Markdown: https://rpubs.com
R Markdown: The Definitive Guide: https://bookdown.org/yihui/rmarkdown/