How to Extract Rows from Data Frame in R (5 Examples)

In R, you can extract specific rows from a data frame using the bracket notation and the row indices. For example, df[c(2,4,5),] will return the 2nd, 4th, and 5th rows from the data frame df. Additionally, you can use logical vectors to specify the rows that have to be extracted, and you can use the subset() function for more complex subsetting operations. Five examples of extracting rows from a data frame in R are provided in this article.


There are five common ways to extract rows from a data frame in R:

Method 1: Extract One Row by Position

#extract row 2
df[2, ]

Method 2: Extract Multiple Rows by Position

#extract rows 2, 4, and 5
df[c(2, 4, 5), ]

Method 3: Extract Range of Rows

#extract rows in range of 1 to 3
df[1:3, ]

Method 4: Extract Rows Based on One Condition

#extract rows where value in column1 is greater than 10
df[df$column1 > 10, ]

Method 5: Extract Rows Based on Multiple Conditions

#extract rows where column1 > 10 and column2 > 5
df[df$column1 > 10 & df$column2 > 5, ]

#extract rows where column1 > 10 or column2 > 5
df[df$column1 > 10 | df$column2 > 5, ]

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

#create data frame
df <- data.frame(team=c('A', 'B', 'C', 'D', 'E'),
                 points=c(99, 90, 86, 88, 95),
                 assists=c(33, 28, 31, 39, 34),
                 rebounds=c(30, 28, 24, 24, 28))

#view data frame
df

  team points assists rebounds
1    A     99      33       30
2    B     90      28       28
3    C     86      31       24
4    D     88      39       24
5    E     95      34       28

Example 1: Extract One Row by Position

The following code shows how to extract only row 2 from the data frame:

#extract row 2
df[2, ]

  team points assists rebounds
2    B     90      28       28

Example 2: Extract Multiple Rows by Position

#extract rows 2, 4, and 5
df[c(2, 4, 5), ]

  team points assists rebounds
2    B     90      28       28
4    D     88      39       24
5    E     95      34       28

Example 3: Extract Range of Rows

The following code shows how to extract rows in the range from 1 to 3:

#extract rows in range of 1 to 3
df[1:3, ]

  team points assists rebounds
1    A     99      33       30
2    B     90      28       28
3    C     86      31       24

Example 4: Extract Rows Based on One Condition

The following code shows how to extract the rows where the value in the points column is greater than 90:

#extract rows where value in points column is greater than 90
df[df$points > 90, ]

  team points assists rebounds
1    A     99      33       30
5    E     95      34       28

Example 5: Extract Rows Based on Multiple Conditions

The following code shows how to extract the rows where the value in the points column is greater than 90:

#extract rows where points is greater than 90 and assists is greater than 33
df[df$points > 90 & df$assists > 33, ]

  team points assists rebounds
5    E     95      34       28

The following tutorials explain how to perform other common tasks in R:

x