How to Use the slice() Function in dplyr (With Examples)

The slice() function in dplyr is used to select rows in a data frame based on position, allowing you to easily extract a subset of the data for further analysis. This is done by specifying a start row (start) and an end row (end) within the slice() function, which can be integers or column names. Examples of using the slice() function are provided to demonstrate how it can be used to access specific rows.


You can use the function from the dplyr package in R to subset rows based on their integer locations.

You can use the following methods to subset certain rows in a data frame:

Method 1: Subset One Specific Row

#get row 3 only
df %>% slice(3)

Method 2: Subset Several Rows

#get rows 2, 5, and 6
df %>% slice(2, 5, 6)

Method 3: Subset A Range of Rows

#get rows 1 through 3
df %>% slice(1:3)

Method 4: Subset Rows by Group

#get first row by group
df %>%
  group_by(var1) %>%
  slice(1)

The following examples show how to each method with the following data frame:

#create dataset
df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'C', 'C'),
                 points=c(1, 2, 3, 4, 5, 6, 7),
                 assists=c(1, 5, 2, 3, 2, 2, 0))

#view dataset
df

  team points assists
1    A      1       1
2    A      2       5
3    A      3       2
4    B      4       3
5    B      5       2
6    C      6       2
7    C      7       0

Example 1: Subset One Specific Row

The following code shows how to use the slice() function to select only row 3 in the data frame:

#get row 3 only
df %>% slice(3)

  team points assists
1    A      3       2

Example 2: Subset Several Rows

The following code shows how to use the slice() function to select several specific rows in the data frame:

#get rows 2, 5, and 6
df %>% slice(2, 5, 6)

  team points assists
1    A      2       5
2    B      5       2
3    C      6       2

Example 3: Subset A Range of Rows

The following code shows how to use the slice() function to select all rows in the range 1 through 3:

#get rows 1 through 3
df %>% slice(1:3)

  team points assists
1    A      1       1
2    A      2       5
3    A      3       2

Example 4: Subset Rows by Group

The following code shows how to use the slice() function to select the first row in certain groups:

#get first row by group
df %>%
  group_by(team) %>%
  slice(1)

# A tibble: 3 x 3
# Groups:   team [3]
  team  points assists
       
1 A          1       1
2 B          4       3
3 C          6       2

The following tutorials explain how to perform other common functions using dplyr:

x