Choose rows in a data.table. Grouped data.tables grab rows within each group.
slice_sample.(
.df,
n,
prop,
weight_by = NULL,
replace = FALSE,
.by = NULL,
by = NULL
)A data.frame or data.table
Number of rows to grab
The proportion of rows to select
Sampling weights
Should sampling be performed with (TRUE) or without (FALSE, default) replacement
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