Choose rows in a data.table. Grouped data.tables grab rows within each group.
slice_min.(.df, order_by, n = 1, ..., with_ties = TRUE, .by = NULL, by = NULL)
A data.frame or data.table
Variable to arrange by
Number of rows to grab
Integer row values
Should ties be kept together. The default TRUE
may return
can return multiple rows if they are equal. Use FALSE
to ignore ties.
Columns to group by
df <- data.table(
x = 1:4,
y = 5:8,
z = c("a", "a", "a", "b")
)
df %>%
slice(1:3)
#> # A tidytable: 3 × 3
#> x y z
#> <int> <int> <chr>
#> 1 1 5 a
#> 2 2 6 a
#> 3 3 7 a
df %>%
slice(1, 3)
#> # A tidytable: 2 × 3
#> x y z
#> <int> <int> <chr>
#> 1 1 5 a
#> 2 3 7 a
df %>%
slice(1:2, .by = z)
#> # A tidytable: 3 × 3
#> x y z
#> <int> <int> <chr>
#> 1 1 5 a
#> 2 2 6 a
#> 3 4 8 b
df %>%
slice_head(1, .by = z)
#> # A tidytable: 2 × 3
#> x y z
#> <int> <int> <chr>
#> 1 1 5 a
#> 2 4 8 b
df %>%
slice_tail(1, .by = z)
#> # A tidytable: 2 × 3
#> x y z
#> <int> <int> <chr>
#> 1 3 7 a
#> 2 4 8 b
df %>%
slice_max(order_by = x, .by = z)
#> # A tidytable: 2 × 3
#> x y z
#> <int> <int> <chr>
#> 1 4 8 b
#> 2 3 7 a
df %>%
slice_min(order_by = y, .by = z)
#> # A tidytable: 2 × 3
#> x y z
#> <int> <int> <chr>
#> 1 1 5 a
#> 2 4 8 b