El primer que farem és pitjar el botó Render. Com veieu, R ens llegeix el document de Quarto i ens converteix el seu contingut en un arxiu Html. Aneu comparant els dos documents i observa com els elements de Quarto es tradueixen a Html.
A continuació intentem resumir, de forma pràctica, els elements essencials d’un document de Quarto.
2 Un quadradet (#) al principi de línia crea un títol de secció
Si no indiquem res al principi de la línia, podem introduir el text normal com estem fent ara. Per un salt de paràgraf, hem de deixar dos espais al final. Fixeu-vos que al final d’aquesta línia hi ha dos espais.->
Aquesta línia, en canvi, no l’acabarem amb espais. Per tant, no ens farà un salt de paràgraf. Amb el guionet podem crear punts (bullet points):
Així es creen les negretes.
I així les cursives.
I així posem el text en format de codi.
L’altra opció és crear punts d’enumeració:
Si volem enllaçar una pàgina web ho farem d’aquesta manera.
De nou, recordeu deixar dos espais al final per fer un salt de paràgraf. L’altra opció per fer salts de paràgrafs és simplement deixar una línia en blanc entre paràgrafs.
Aquests és el logo de Quarto. Si volem posar imatges directament, farem servir el signe d’exclamació, seguit dels claudàtors i entre parèntesi l’enllaç a la imatge.
2.1 Amb dos quadradets creem una subsecció
I a continuació hi tornem a ubicar text.
2.1.1 Amb tres quadradets creem una subsubsecció
I així successivament
3 Chunks
Els chunks serveixen per afegir codi d’R al text. Els chunks són caixes grises que trobarem al llarg d’aquest Quarto Script. A dins dels chunks, posarem el codi d’R. Per crear chunks nous:
Podem simplement seleccionar un chunk ja creat i copiar i enganxar el seu contingut.
O, alternativament, podem teclejar Ctrl + Alt + I (Mac: Cmd + Option + I).
Opcionalment, podem posar un títol als chunks. El primer chunk que hem creat a l’inici del document es diu setup. El proper chunk que crearem es dirà packages. I a dins del chunk, carreguem els paquets dplyr, readr, ggplot2 i knitr.
library(dplyr)
Warning: package 'dplyr' was built under R version 4.4.3
Adjuntando el paquete: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
library(readr)
Warning: package 'readr' was built under R version 4.4.3
library(ggplot2)
Warning: package 'ggplot2' was built under R version 4.4.3
library(knitr)
Warning: package 'knitr' was built under R version 4.4.3
Observeu com Quarto ha convertit aquesta part en Html. Per defecte, Quarto ens ensenya el codi del chunk i tots els resultats de produeix. Com que sempre que carregem el paquet dplyr ens apareixen uns missatges d’avís a la consola, també veurem aquests missatges impresos al document Html.
Com que no ens interessa que apareguin aquests missatges, anem a eliminar-los i així de passada aprenem més coses sobre el funcionament dels chunks:
En el chunk que hem creat prèviament, i després de la paraula packages, afegirem una coma seguit de message = FALSE.
El contingut de dins de les claus hauria de quedar de la següent manera: {r packages, message = FALSE}.
Ara tornem a generar l’Html. Premem el botó Render i observem els canvis.
Com veiem, el chunk conté codi i indicacions sobre com es mostrarà el codi a l’Html. Les indicacions que podem donar són les següents:
message: TRUE per defecte, deixa de mostrar els missatges quan canviem a FALSE.
warning: TRUE per defecte, deixa de mostrar els avisos quan canviem a FALSE.
echo: TRUE per defecte, amaga el codi quan el canviem a FALSE.
eval: TRUE per defecte, no reprodueix el resultat quan el canviem a FALSE.
include: TRUE per defecte, ho amaga tot quan ho canviem a FALSE.
Vegem ara alguns exemples de com utilitzar els chunks. El següent chunk, anomenat nmc, està preparat per mostrar el codi de la següent manera:
El codi es mostrarà a l’Html, perquè per defecte en el chunk setup està indicat echo = TRUE.
No reproduirà el resultat, perquè hem posat explícitament que eval = FALSE.
nmc <-read_csv("nmc_60.csv")
Rows: 14322 Columns: 10
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (1): stateabb
dbl (9): ccode, year, milex, milper, irst, pec, tpop, upop, cinc
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
kable(head(nmc, 10))
stateabb
ccode
year
milex
milper
irst
pec
tpop
upop
cinc
USA
2
1816
3823
17
80
254
8659
101
0.0396975
USA
2
1817
2466
15
80
277
8899
106
0.0358166
USA
2
1818
1910
14
90
302
9139
112
0.0361265
USA
2
1819
2301
13
90
293
9379
118
0.0371332
USA
2
1820
1556
15
110
303
9618
124
0.0370869
USA
2
1821
1612
11
100
321
9939
130
0.0341731
USA
2
1822
1079
10
100
332
10268
136
0.0329391
USA
2
1823
1170
11
110
345
10596
143
0.0331075
USA
2
1824
1261
11
110
390
10924
151
0.0329776
USA
2
1825
1336
11
120
424
11252
158
0.0342150
Ara fem alguns canvis al chunk anterior:
Posem eval = FALSE, de manera que ens reproduirà el codi.
Podem echo = FALSE, de manera que ens amagarà el codi.
Posem message = FALSE, de manera que ens eliminarà el missatge que apareix.
El chunk hauria de quedar de la següent manera: {r nmc, eval = TRUE, echo = FALSE, message = FALSE}.
Premem Render de nou.
4 Imatges i gràfics
Els chunks també serveixen per reproduir imatges. Per això posem a dins del chunk la funció include_graphics() del paquet knitr.
Feu els canvis al chunk per amagar codi i reproduir el resultat.
include_graphics("cinc-structure.png")
Com que en el chunk previ hem creat l’objecte nmc dins de Quarto, en els chunks següents podrem utilitzar-lo per reproduir resultats. Per exemple, en el següent codi reprodueix una figura a partir de l’objecte nmc. És molt important que si no creem l’objecte prèviament (en el mateix chunk o en un chunk anterior, Quarto no sabrà de quin objecte estem parlant).
Simplement, canviem eval per echo.
nmc |>filter(stateabb %in%c("USA", "CHN")) |>ggplot(aes(x = year, y = milper, col = stateabb)) +geom_line() +labs(title ="Poseu un títol al gràfic")
plot(datasets::co2)
nmc |>filter(stateabb %in%c("USA", "CHN")) |>ggplot(aes(x = year, y = milper, col = stateabb)) +geom_line() +labs(title ="Poseu un títol al gràfic")