Dplyr slice(): Zeilen nach Position auswählen

Die Funktion slice() wählt Zeilen (Beobachtungen) anhand ihrer Position aus. Mit ihr lassen sich Zeilen auswählen, löschen oder duplizieren. Zu slice() gibt es folgende Hilfsfunktionen:

Hilfsfunktionen (helper functions):

  • slice_head() und slice_tail() wählen die ersten bzw. letzten Zeilen aus.
  • slice_sample() wählt Zeilen zufällig aus.
  • slice_min() und slice_max() wählen die Zeilen mit den höchsten oder niedrigsten Werten einer Variablen aus.

In diesem Kapitel wird slice() anhand des Datensatzes mpg demonstriert.

library(tidyverse)
data(mpg)

Wir beginnen damit, die ersten 10 Zeilen auszuwählen:

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

Die ersten 10 Zeilen in mpg löschen:

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

Beispiele mit den Hilfsfunktionen:

## Letzte 5 Zeilen
mpg |>
  slice_tail(n = 5)

## Erste 5 Zeilen
mpg |>
  slice_head(n = 5)

## Zeilen mit den 20 höchsten Werten von displ auswählen
mpg |>
  slice_max(displ, n = 20)

## Zeilen mit den 20 niedrigsten Werten von displ auswählen
mpg |>
  slice_min(displ, n = 20)

Die Funktion filter() dient dazu, Zeilen anhand von Bedingungen statt nach Position zu filtern. Siehe Kapitel dplyr filter(). Mit filter() lassen sich Zeilen jedoch auch nach Position auswählen, wie das folgende Beispiel zeigt:

## Zeile 4 auswählen
mpg |>
   filter(row_number() == 4)