Choose rows in a data.table. Grouped data.tables grab rows within each group.

slice_tail.(.df, n = 5, ..., .by = NULL, by = NULL)

Arguments

.df

A data.frame or data.table

n

Number of rows to grab

...

Integer row values

.by, by

Columns to group by

Examples

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