如何使用 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 中执行其他常用功能:

如何使用 dplyr 按索引选择列
如何使用 dplyr 按组对变量进行排序
如何在 dplyr 中用零替换 NA

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注