Dplyr slice(): Velge rader etter posisjon

Funksjonen slice() velger rader (observasjoner) basert på posisjon. Funksjonen gjør det mulig å velge, slette eller duplisere rader. Følgende hjelpefunksjoner finnes til slice():

Hjelpefunksjoner (helper functions):

  • slice_head() og slice_tail() velger henholdsvis de første og de siste radene.
  • slice_sample() velger rader tilfeldig.
  • slice_min() og slice_max() velger rader med høyeste eller laveste verdier for en variabel.

Dette kapittelet bruker mpg-data for å demonstrere slice().

library(tidyverse)
data(mpg)

Vi begynner med å velge de første 10 radene:

mpg |>
  slice(1:10)
   manufacturer model      displ  year   cyl trans      drv     cty   hwy fl    class
 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

Sletter de første 10 radene i mpg:

mpg |>
  slice(-(1:10))
## A tibble: 224 × 11
   manufacturer model              displ  year   cyl trans      drv     cty   hwy fl    class
 1 audi         a4 quattro           2    2008     4 auto(s6)   4        19    27 p     compact
 2 audi         a4 quattro           2.8  1999     6 auto(l5)   4        15    25 p     compact
 3 audi         a4 quattro           2.8  1999     6 manual(m5) 4        17    25 p     compact
 4 audi         a4 quattro           3.1  2008     6 auto(s6)   4        17    25 p     compact
 5 audi         a4 quattro           3.1  2008     6 manual(m6) 4        15    25 p     compact
 6 audi         a6 quattro           2.8  1999     6 auto(l5)   4        15    24 p     midsize
 7 audi         a6 quattro           3.1  2008     6 auto(s6)   4        17    25 p     midsize
 8 audi         a6 quattro           4.2  2008     8 auto(s6)   4        16    23 p     midsize
 9 chevrolet    c1500 suburban 2wd   5.3  2008     8 auto(l4)   r        14    20 r     suv
10 chevrolet    c1500 suburban 2wd   5.3  2008     8 auto(l4)   r        11    15 e     suv

Eksempler med hjelpefunksjonene:

## Siste 5 rader
mpg |>
  slice_tail(n = 5)

## Første 5 rader
mpg |>
  slice_head(n = 5)

## Velg radene med de 20 høyeste verdiene for displ
mpg |>
  slice_max(displ, n = 20)

## Velg radene med de 20 laveste verdiene for displ
mpg |>
  slice_min(displ, n = 20)

Funksjonen filter() brukes til å filtrere rader ved hjelp av betingelser i stedet for posisjon. Se kapittelet dplyr filter(). Med filter() kan rader likevel velges etter posisjon, slik det fremgår av følgende eksempel:

## Velg rad 4
mpg |>
   filter(row_number() == 4)