Gå till index

Lilla Forskarskolan: Forskningsmetoder och Analys 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

Dplyr är ett av de viktigaste paketen till R. Paketet skapades av Hadley Wickham, som även skapat ggplot2, tidyr, lubridate, och många fler. Dplyr inkluderar en lång rad funktioner som underlättar i princip all bearbetning av data.

Funktioner i base R (grundinstallationen av R) kan hantera många av de funktioner som ingår i dplyr. I base R finns funktioner som split(), subset(), sapply(), lapply(), tapply() och aggregate(), men dessa funktioner är svåra att använda och kan inte heller kombineras på ett naturligt sätt med andra funktioner i tidyverse. Dplyr är lätt att arbeta med och kan dessutom kombineras med funktioner i hundratalas andra viktiga R paket. Faktum är att allt fler paket konstrueras och anpassas för att kunna användas tillsammans med dplyr. Dplyr ingår i tidyverse som innehåller många fler viktiga paket (exempelvis ggplot2).

Funktionerna i dplyr är inte bara enklare att använda jämfört med base R, de är också mer effektiva (de konsumerar mindre arbetsminne och är som regel snabbare).

Alla funktioner i dplyr är utformade för att användas på dataframes (se tidigare diskussion). En dataframe är en rektanbulär tabell med rader och kolumner. I nästan samtliga fall utgör raderna observationer och kolumnerna utgör variabler (mätvärden som beskriver observationerna).

I detta kapitel kommer samtliga funktioner i dplyr demonstreras. Bland dessa funktioner återfinns exempelvis:

  • filter() - välj variabler/fall baserat på deras värde
  • mutate() - lägger till en ny variabel som är en funktion av befintliga variabler
  • select() - välj variabler baserat på deras namn
  • arrange() - byt ordningsföljd på rader i data frame
  • rename() - byt namn på variabler
  • slice() - väljer variabler baserat på deras position
  • summarise() - summerar flera variabler till en summerad variabel
  • group_by() - utför dina funktioner på en bestämd grupp av individer i din datafil
  • across() - applicera en eller flera funktioner på en särskild grupp av variabler
  • if_else() - skapar en ny variabel baserat på olika påståenden som kan uppfyllas
  • row_number() - använd radnummer för att lägga till kolumn som innehåller information on radnummer
  • rowwise() - utför dina funktioner på en grupp av rader (observationer)
  • distinct() - välj ut rader med unika värden för en eller flera variabler i din datafil

Installera dplyr

Dplyr ingår i det mer omfattande ramverket tidyverse och kan därför installeras genom följande kommando:

R
install.packages("tidyverse", dependencies = T)

Aktivering av tidyverse kommer leda till aktivering av följande paket: dplyr, ggplot2, forcats, tibble, tidyr, stringr, purr, readr:

R
library(tidyverse)
Resultat
── Attaching packages ─────────────────────────────────────────────── tidyverse 1.3.2 ──
✔ ggplot2 3.4.0      ✔ purrr   0.3.4 
✔ tibble  3.1.8      ✔ dplyr   1.0.10
✔ tidyr   1.2.0      ✔ stringr 1.4.1 
✔ readr   2.1.2      ✔ forcats 0.5.1 
── Conflicts ────────────────────────────────────────────────── tidyverse_conflicts() ──
dplyr::filter() masks stats::filter()
dplyr::lag()    masks stats::lag()

Som framgår av utskriften ovan är paketen nu aktiverade. I paketet ggplot2 finns mpg data, som vi nu aktiverar med följande kommando:

R
# Aktivera mpg data
data(mpg)

# Visa första 5 raderna
head(mpg)
R
# A tibble: 6 × 11
  manufacturer model displ  year   cyl trans      drv     cty   hwy fl    class  
  <chr>        <chr> <dbl> <int> <int> <chr>      <chr> <int> <int> <chr> <chr>  
1 audi         a4      1.8  1999     4 auto(l5)   f        18    29 p     compact
2 audi         a4      1.8  1999     4 manual(m5) f        21    29 p     compact
3 audi         a4      2    2008     4 manual(m6) f        20    31 p     compact
4 audi         a4      2    2008     4 auto(av)   f        21    30 p     compact
5 audi         a4      2.8  1999     6 auto(l5)   f        16    26 p     compact
6 audi         a4      2.8  1999     6 manual(m5) f        18    26 p     compact

Grupperade funktioner med group_by()

Med funktionen group_by() kan du tvinga dplyr att utföra varje funktion separat i olika grupper i din dataframe. Vi kommer anvädna group_by() i många exempel för att demonstrera detta.

The Pipe Operator (Pipe): |>

Styrkan i dplyr är möjligheten att kedja operationer (händelser). I dplyr kan vi utföra operationer sekventiellt med hjälp av pipe som har tecknet |>. Tidigare användes %>% som pipe-operator men sedan 2021 är detta ändrat till |>. Kortkommandot för pipe är Cmd+Shift+M på Mac och Ctrl + Shift + M på Windows och Linux.

Pipe är magisk! Pipe tar nämligen resultatet av varje operation och skickar vidare detta som första argument i nästa operation. Ett exempel på detta följer, med kommentarer nedanför:

R
mpg |> 
  select(displ, cty, cyl) |> 
  mutate(ny_variabel = displ*cyl)
  • På rad 1 startar vi med mpg data som vi skickar vidare till rad 2 med |>.
  • På rad 2 väljer vi att behålla tre kolumner: displ, cty och cyl. Resultatet blir en ny dataframe som bara innehåller dessa tre variabler. Denna dataframe skickar vidare som första argument på rad 3.
  • På rad 3 används mutate() för att skapa variabeln ny_variabel, som är produkten av displ och cyl.

Således används pipe (|>) för att kedja operationer med dplyr.