Activitat Quarto

Author

Verònica Lafont Roca

Published

March 6, 2025

1 Introducció

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ó:

  1. Si volem enllaçar una pàgina web ho farem d’aquesta manera.
  2. Una prova d’enllaç a la pàgina web de la UOC.
  3. 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.

I aquí farem una llista amb dos ítems tal com demana l’exercici 14.3

  • Hola
  • Adéu

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. així posem fotos

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).

Ara inserim el gràfic dels apunts

plot(datasets::co2)

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)
library(readr)
library(ggplot2)
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.
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 = TRUE, 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.

15.2 Marc de dades

Primera prova de taula

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

Segona prova de taula

Warning in instance$preRenderHook(instance): It seems your data is too big for
client-side DataTables. You may consider server-side processing:
https://rstudio.github.io/DT/server.html

Funcions pipe

State Year Military Expenditure
USA 1816 0.0396975
USA 1817 0.0358166
USA 1818 0.0361265
USA 1819 0.0371332
USA 1820 0.0370869
USA 1821 0.0341731
USA 1822 0.0329391
USA 1823 0.0331075
USA 1824 0.0329776
USA 1825 0.0342150

15.3. Imatges i gràfics
Imatge:

Gràfic

nmc |> 
  filter(stateabb %in% c("BHM", "CAN")) |> 
  ggplot(aes(x = year, y = pec, col = stateabb)) +
  geom_line() +
  labs(title = "Producte Interior Brut de les Bahames i Canada. Del 1920 al 2020 ")