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