Dplyr slice(): Selektera rader på positioner

Funktionen slice() selekterar rader (observationer) baserat på position. Funktionen gör det möjligt att selektera, radera eller duplicera rader. Följande hjälpfunktioner finns till slice():

Hjälpfunktioner (helper functions):

  • slice_head() och slice_tail() väljer de första respektive sista raderna.
  • slice_sample() väljer rader slumpmässigt.
  • slice_min() och slice_max() väljer rader med högsta eller lägsta värden för en variabel.

Detta kapitel använder mpg data för att demonstrera slice().

library(tidyverse)
data(mpg)

Vi börjar med att selektera de första 10 raderna:

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

Raderar de första 10 raderna 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

Exempel med hjälpfunktionerna:

## Sista 5 raderna
mpg |>
  slice_tail(n = 5)

## Första 5 raderna
mpg |>
  slice_head(n = 5)

## Välj raderna med 20 högsta värdena på displ
mpg |>
  slice_max(displ, n = 20)

## Välj raderna med 20 minsta värdena på displ
mpg |>
  slice_min(displ, n = 20)

Funktionen filter() används för att filtrera rader med hjälp av villkor, istället för position. Se kapitel dplyr filter(). Med filter() kan dock rader selekteras på position, som framgår av följande exempel:

## Välj rad 4
mpg |>
   filter(row_number() == 4)