Gå till index

Analys och forskning med R

0% färdig
0/0 Steps
  1. Analys och forskning med R och Posit (Rstudio)
  2. Grunderna i R och Rstudio
    7 Ämnen
  3. Importera, exportera, spara och ladda data
    5 Ämnen
  4. Strängar och regular expressions (regex)
    1 Ämne
  5. Bearbetning av data med dplyr
    12 Ämnen
  6. Visualisera och presentera
    14 Ämnen
  7. Explorerande och deskriptiva analyser
    6 Ämnen
  8. Prediktionsmodeller
    12 Ämnen
  9. Klassisk regressionsanalys
    8 Ämnen
  10. Machine learning (ML) och Artificiell Intelligens (AI)
    9 Ämnen
  11. Skapa prediktionsmodeller med Tidymodels
    6 Ämnen
  12. Hypotestester och epidemiologiska mått
    5 Ämnen
Avsnitt Progress
0% färdig

Funktionen mutate() utför operationer på kolumner. Exempelvis resulterar kommandot mutate(mean_bmi=mean(bmi)) till att kolumnen mean_bmi beräknas som medelvärdet av kolumnen bmi. Men hur gör vi om mean_bmi istället skall beräknas som medelvärdet av flera kolumner? För detta behöver vi funktionen rowwise().

I dessa exempel använder vi mpg data som finns i paketet tidyverse. Aktivera tidyverse och mpg som följer:

R
library(tidyverse)
data(mpg)

# Inspektera första 10 raderna
head(mpg, 10)
R
manufacturer  model      displ  year   cyl trans      drv     cty   hwy fl    class  
 audi         a4           1.8  1999     4 auto(l5)   f        18    29 p     compact
 audi         a4           1.8  1999     4 manual(m5) f        21    29 p     compact
 audi         a4           2    2008     4 manual(m6) f        20    31 p     compact
 audi         a4           2    2008     4 auto(av)   f        21    30 p     compact
 audi         a4           2.8  1999     6 auto(l5)   f        16    26 p     compact
 audi         a4           2.8  1999     6 manual(m5) f        18    26 p     compact
 audi         a4           3.1  2008     6 auto(av)   f        18    27 p     compact
 audi         a4 quattro   1.8  1999     4 manual(m5) 4        18    26 p     compact
 audi         a4 quattro   1.8  1999     4 auto(l5)   4        16    25 p     compact
 audi         a4 quattro   2    2008     4 manual(m6) 4        20    28 p     compact

För att demonstrationen skall bli tydligare sparar vi endast de numeriska kolumnerna i mpg data. Det nya objektet kallas mpg2:

R
mpg2 <- mpg %>% select(where(is.numeric))

# Inspekterar data igen
head(mpg2, 10)
R
   displ  year   cyl   cty   hwy
    1.8  1999     4    18    29
    1.8  1999     4    21    29
    2    2008     4    20    31
    2    2008     4    21    30
    2.8  1999     6    16    26
    2.8  1999     6    18    26
    3.1  2008     6    18    27
    1.8  1999     4    18    26
    1.8  1999     4    16    25
    2    2008     4    20    28

Vi skapar nu två nya variabler: ny_variabel och ny_variabel_2. Dessa variabler skall vara medelvärdet av kolumnerna cyl, displ och cty. Variabeln ny_variabel skapas utan rowwise(). Variabeln ny_variabel_2 skapas med rowwise(), vilket innebär att den föregås av rowwise(). Vi skapar variablerna samtidigt för att resultatet skall kunna jämföras direkt. Koden är som följer:

R
mpg2 |>
  mutate(ny_variabel = mean(c(cyl, displ, cty))) |>
  rowwise() |> 
  mutate(ny_variabel_2 = mean(c(cyl, displ, cty)))
R
  displ  year   cyl   cty   hwy ny_variabel ny_variabel_2
    1.8  1999     4    18    29        8.74          7.93
    1.8  1999     4    21    29        8.74          8.93
    2    2008     4    20    31        8.74          8.67
    2    2008     4    21    30        8.74          9   
    2.8  1999     6    16    26        8.74          8.27
    2.8  1999     6    18    26        8.74          8.93
    3.1  2008     6    18    27        8.74          9.03
    1.8  1999     4    18    26        8.74          7.93
    1.8  1999     4    16    25        8.74          7.27
    2    2008     4    20    28        8.74          8.67

Som framgår ovan har alla rader samma värde på ny_variabel (8.74). Detta förklaras av att mutate() beräknade kolumnvis (column wise) medelvärde. Värdena för ny_variabel_2 varierar dock på varje rad, vilket beror på att värdena beräknats som radvis (row wise) medelvärde.

Logga in för att läsa

Som medlem har du tillgång till allt nuvarande och kommande utbildningsmaterial. Du kan följa din utveckling och få intyg på avklarade moment.