Learn R Programming

dplyr (version 0.7.8)

slice: Select rows by position

Description

Slice does not work with relational databases because they have no intrinsic notion of row order. If you want to perform the equivalent operation, use filter() and row_number().

Usage

slice(.data, ...)

Arguments

.data

A tbl.

...

Integer row values.

These arguments are automatically quoted and evaluated in the context of the data frame. They support unquoting and splicing. See vignette("programming") for an introduction to these concepts.

Tidy data

When applied to a data frame, row names are silently dropped. To preserve, convert to an explicit variable with tibble::rownames_to_column().

Details

Positive values select rows to keep; negative values drop rows. The values provided must be either all positive or all negative.

See Also

Other single table verbs: arrange, filter, mutate, select, summarise

Examples

Run this code
# NOT RUN {
slice(mtcars, 1L)
slice(mtcars, n())
slice(mtcars, 5:n())
# Rows can be dropped with negative indices:
slice(mtcars, -5:-n())
# In this case, the result will be equivalent to:
slice(mtcars, 1:4)

by_cyl <- group_by(mtcars, cyl)
slice(by_cyl, 1:2)

# Equivalent code using filter that will also work with databases,
# but won't be as fast for in-memory data. For many databases, you'll
# need to supply an explicit variable to use to compute the row number.
filter(mtcars, row_number() == 1L)
filter(mtcars, row_number() == n())
filter(mtcars, between(row_number(), 5, n()))
# }

Run the code above in your browser using DataLab