如何使用 dplyr 删除行(带有示例)
您可以使用以下基本语法使用 dplyr 从 R 数据框中删除行:
1.删除任何带有NA的行
df %>%
n / A. omit ()
2.删除特定列中任何带有NA的行
df %>% filter( ! is. na (column_name))
3. 删除重复项
df %>%
distinct()
4.按索引位置删除行
df %>% filter( ! row_number() %in% c(1, 2, 4))
5. 根据条件删除行
df %>%
filter(column1 == ' A ' | column2 > 8)
以下示例展示了如何在实践中使用以下数据框使用每种方法:
library (dplyr)
#create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C'),
points=c(4, NA, 7, 5, 9, 9),
assists=c(1, 3, 5, NA, 2, 2))
#view data frame
df
team points assists
1 to 4 1
2 A NA 3
3 B 7 5
4 B 5 NA
5 C 9 2
6 C 9 2
示例 1:删除任何带有 NA 的行
以下代码展示了如何从数据框中删除任何包含 NA 值的行:
#remove any row with NA df %>% n / A. omit () team points assists 1 to 4 1 3 B 7 5 5 C 9 2 6 C 9 2
示例 2:删除特定列中任何带有 NA 的行
以下代码展示了如何删除特定列中包含 NA 值的任何行:
#remove any row with NA in 'points' column: df %>% filter( ! is. na (dots)) team points assists 1 to 4 1 2 B 7 5 3 B 5 NA 4 C 9 2 5 C 9 2
示例 3:删除重复行
以下代码展示了如何删除重复行:
#remove duplicate rows
df %>%
distinct()
team points assists
1 to 4 1
2 A NA 3
3 B 7 5
4 B 5 NA
5 C 9 2
示例 4:按索引位置删除行
以下代码显示了如何根据索引位置删除行:
#remove rows 1, 2, and 4 df %>% filter( ! row_number() %in% c(1, 2, 4)) team points assists 1 B 7 5 2 C 9 2 3 C 9 2
示例 5:根据条件删除行
以下代码展示了如何根据特定条件删除行:
#only keep rows where team is equal to 'A' or points is greater than 8 df %>% filter(column1 == ' A ' | column2 > 8) team points assists 1 to 4 1 2 A NA 3 3 C 9 2 4 C 9 2
其他资源
以下教程解释了如何在 dplyr 中执行其他常用功能: