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 5, Ämne 12

Dplyr distinct(): Identifiera unika observationer och rader

Avsnitt Progress
0% färdig

Funktionen distinct() används för att identifiera unika rader (observationer) i en dataframe. Det är vanligt att detta behov uppstår och funktionen distinct() i kombination med andra dplyr-funktioner, särskilt group_by(), klarar i princip alla uppgifter av denna sorten.

I detta kapitel kommer vi använda mpg data från paketet tidyverse. För att få tillgång till data måste både tidyverse och mpg data aktiveras med följande kommandon:

R
library(tidyverse)
data(mpg)

# Inspektera första 10 raderna
head(mpg, 10)
R
# A tibble: 10 × 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
 7 audi         a4           3.1  2008     6 auto(av)   f        18    27 p     compact
 8 audi         a4 quattro   1.8  1999     4 manual(m5) 4        18    26 p     compact
 9 audi         a4 quattro   1.8  1999     4 auto(l5)   4        16    25 p     compact
10 audi         a4 quattro   2    2008     4 manual(m6) 4        20    28 p     compact

Vi börjar med att välja alla rader med unika värden på variabeln manufacturer.

R
mpg |>
  distinct(manufacturer, .keep_all = TRUE)
R
# A tibble: 15 × 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 chevrolet    c1500 suburban 2wd   5.3  2008     8 auto(l4)   r        14    20 r     suv       
 3 dodge        caravan 2wd          2.4  1999     4 auto(l3)   f        18    24 r     minivan   
 4 ford         expedition 2wd       4.6  1999     8 auto(l4)   r        11    17 r     suv       
 5 honda        civic                1.6  1999     4 manual(m5) f        28    33 r     subcompact
 6 hyundai      sonata               2.4  1999     4 auto(l4)   f        18    26 r     midsize   
 7 jeep         grand cherokee 4wd   3    2008     6 auto(l5)   4        17    22 d     suv       
 8 land rover   range rover          4    1999     8 auto(l4)   4        11    15 p     suv       
 9 lincoln      navigator 2wd        5.4  1999     8 auto(l4)   r        11    17 r     suv       
10 mercury      mountaineer 4wd      4    1999     6 auto(l5)   4        14    17 r     suv       
11 nissan       altima               2.4  1999     4 manual(m5) f        21    29 r     compact   
12 pontiac      grand prix           3.1  1999     6 auto(l4)   f        18    26 r     midsize   
13 subaru       forester awd         2.5  1999     4 manual(m5) 4        18    25 r     suv       
14 toyota       4runner 4wd          2.7  1999     4 manual(m5) 4        15    20 r     suv       
15 volkswagen   gti                  2    1999     4 manual(m5) f        21    29 r     compact 

Notera argumentet .keep_all = TRUE. Detta argument berättar för funktionen att alla kolumner i mpg data ska behållas efter att funktionen distinct() har använts. Om detta argument inte specificeras kommer alla unika observationer behållas och övriga variabler elimineras (förutom variabeln som använts för att identifiera unika rader).

Vi identifierar nu alla unika rader (observationer) i varje bilklass (class) inom varje tillverkare (manufacturer):

R
mpg |>
  distinct(manufacturer, class, .keep_all = TRUE)
R
# A tibble: 32 × 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         a6 quattro           2.8  1999     6 auto(l5)   4        15    24 p     midsize   
 3 chevrolet    c1500 suburban 2wd   5.3  2008     8 auto(l4)   r        14    20 r     suv       
 4 chevrolet    corvette             5.7  1999     8 manual(m6) r        16    26 p     2seater   
 5 chevrolet    malibu               2.4  1999     4 auto(l4)   f        19    27 r     midsize   
 6 dodge        caravan 2wd          2.4  1999     4 auto(l3)   f        18    24 r     minivan   
 7 dodge        dakota pickup 4wd    3.7  2008     6 manual(m6) 4        15    19 r     pickup    
 8 dodge        durango 4wd          3.9  1999     6 auto(l4)   4        13    17 r     suv       
 9 ford         expedition 2wd       4.6  1999     8 auto(l4)   r        11    17 r     suv       
10 ford         f150 pickup 4wd      4.2  1999     6 auto(l4)   4        14    17 r     pickup    
11 ford         mustang              3.8  1999     6 manual(m5) r        18    26 r     subcompact
12 honda        civic                1.6  1999     4 manual(m5) f        28    33 r     subcompact
13 hyundai      sonata               2.4  1999     4 auto(l4)   f        18    26 r     midsize   
14 hyundai      tiburon              2    1999     4 auto(l4)   f        19    26 r     subcompact
15 jeep         grand cherokee 4wd   3    2008     6 auto(l5)   4        17    22 d     suv       
16 land rover   range rover          4    1999     8 auto(l4)   4        11    15 p     suv       
17 lincoln      navigator 2wd        5.4  1999     8 auto(l4)   r        11    17 r     suv       
18 mercury      mountaineer 4wd      4    1999     6 auto(l5)   4        14    17 r     suv       
19 nissan       altima               2.4  1999     4 manual(m5) f        21    29 r     compact   
20 nissan       altima               2.5  2008     4 auto(av)   f        23    31 r     midsize   
21 nissan       pathfinder 4wd       3.3  1999     6 auto(l4)   4        14    17 r     suv       
22 pontiac      grand prix           3.1  1999     6 auto(l4)   f        18    26 r     midsize   
23 subaru       forester awd         2.5  1999     4 manual(m5) 4        18    25 r     suv       
24 subaru       impreza awd          2.2  1999     4 auto(l4)   4        21    26 r     subcompact
25 subaru       impreza awd          2.5  2008     4 auto(s4)   4        20    25 p     compact   
26 toyota       4runner 4wd          2.7  1999     4 manual(m5) 4        15    20 r     suv       
27 toyota       camry                2.2  1999     4 manual(m5) f        21    29 r     midsize   
28 toyota       camry solara         2.2  1999     4 auto(l4)   f        21    27 r     compact   
29 toyota       toyota tacoma 4wd    2.7  1999     4 manual(m5) 4        15    20 r     pickup    
30 volkswagen   gti                  2    1999     4 manual(m5) f        21    29 r     compact   
31 volkswagen   new beetle           1.9  1999     4 manual(m5) f        35    44 d     subcompact
32 volkswagen   passat               1.8  1999     4 manual(m5) f        21    29 p     midsize   

Du kan kombinera distinct() med group_by().

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.