Töflur

ATHUGA: Þessi síða er óunnin og mikið vantar

Í síðasta kafla vorum við búin að fá ýmsar upplýsingar sem við viljum nú setja upp í fallega töflu sem við getum verið stolt af.

kableExtra

Pakkinn kableExtra býður okkur upp á að geta sett hluti beint inn í skipunina kable() svo úr fáist falleg tafla.

Í síðasta hluta notuðum við pípur til að taka saman upplýsingar, nú viljum við vista þetta sem hlut sem við getum skellt beint inn í kable():

tafla <- df %>%
  group_by(sveitarfélag) %>%
  summarise(mean(verð), sd(verð), min(verð), max(verð), mean(stærð), sd(stærð), min(stærð), max(stærð)) 
  • ATH. hér hef ég bætt við fleiri mælingum í summarise

Við getum nú skellt töflunni beint inn í kable()

kable(tafla)
sveitarfélag mean(verð) sd(verð) min(verð) max(verð) mean(stærð) sd(stærð) min(stærð) max(stærð)
Garðabær 60687.77 14064.18 33000 96500 188.3670 53.78256 73.2 330.2
Hafnarfjörður 54935.94 11787.48 23900 85000 201.3162 54.77713 60.7 439.9
Kópavogur 60412.50 11735.98 32000 92000 199.2776 47.34589 105.6 315.1
Mosfellsbær 53436.84 12845.85 24900 82500 198.9447 65.09178 61.9 350.5
Reykjavík 59387.17 13013.51 29000 94550 205.4099 59.37543 56.6 420.9

Þetta er nú ekki beint falleg tafla, svo nú ætlum við að laga hana aðeins. Fyrir neðan töfluna má finna útskýringu á þeim skipunum sem notaðar voru hér, í sömu röð og þær birtast í kóðabútnum. Listi með skipunum kable() má finna hér. Þessi síða gefur síðan enn fleiri dæmi þar sem aðrar undirskipanir kableExtra eru notaðar.

kable(tafla, digits=2,
      caption = "Dreifing verðs og stærðar eftir sveitarfélagi",
      format.args = list(decimal.mark = ",", big.mark = "."),
      col.names = c("Sveitarfélag", "Meðaltal", "Staðalfrávik", "Lægsta", "Hæsta", "Meðaltal", "Staðalfrávik", "Lægsta", "Hæsta"),
      table.attr = "style='width:110%;'") %>% 
  add_header_above(c(" " = 1, "Verð" = 4, "Stærð" = 4), font_size = 16) %>% 
  kable_styling(bootstrap_options = "striped") 
Dreifing verðs og stærðar eftir sveitarfélagi
Verð
Stærð
Sveitarfélag Meðaltal Staðalfrávik Lægsta Hæsta Meðaltal Staðalfrávik Lægsta Hæsta
Garðabær 60.687,77 14.064,18 33.000 96.500 188,37 53,78 73,2 330,2
Hafnarfjörður 54.935,94 11.787,48 23.900 85.000 201,32 54,78 60,7 439,9
Kópavogur 60.412,50 11.735,98 32.000 92.000 199,28 47,35 105,6 315,1
Mosfellsbær 53.436,84 12.845,85 24.900 82.500 198,94 65,09 61,9 350,5
Reykjavík 59.387,17 13.013,51 29.000 94.550 205,41 59,38 56,6 420,9

Útskýring á hverjum hluta:

  • digits=2 # Tveir aukastafir

  • caption = “nafn”) # Gefur töflunni sjálfri nafn

  • format.args = list(decimal.mark = “,”, big.mark = “.”) # Komma táknar aukastafi, punktur táknar þúsundir

  • col.names = c(“nafn”,“nafn”,“nafn”……) # Endurskíri alla dálka

  • table.attr = “style=‘width:110%;’” # Stilli stærð töflu

  • add_header_above(c(” ” = 1, “Verð” = 4, “Stærð” = 4) # Gef yfirdálkum nafn, sá fyrsti er auður (yfir sveitarfélagi), “Verð” er yfir næstu 4 dálkum og stærð yfir næstu 4

  • kable_styling(bootstrap_options = “striped”) # Setur gráan bakgrunn í annarri hverri röð

Smíðum töflur sjálf

Til þess að við getum sett eitthvað innan svigans hjá kable() þá þurfum við jú að vera með einn hlut sem inniheldur allar upplýsingarnar sem eiga að vera í töflunni.

Þetta getur flækst aðeins fyrir þegar við kunnum að fá allar upplýsingar í sitthvoru lagi en kunnum ekki að sameina þær upplýsingar í eina töflu.

cbind() og rbind() koma þá að gagni með því að sameina töflur.

  • cbind() sameinar töflur eftir columns á meðan rbind() sameinar þær eftir rows
hlutur <- cbind(hlutur1, hlutur2)
  • Þarna gæti t.d. hlutur 1 verið colMeans(df) og hlutur 2 verið apply(df, 2, sd).

  • Við hefðum einnig geta gert það beint með hlutur <- cbind(colMeans(df), apply(df,2,sd))

  • Úr þessu fæst tafla sem gefur meðaltöl og staðalfrávik fyrir gagnasafnið í einni töflu.