你可以使用以下基本语法,在R语言中使用dplyr从数据框中删除行:
1.删除任何带有NA的行
df %>%
na.omit()
2.2. 删除任何在特定列中带有NA的行
df %>%
3.移除重复的内容
df %>%
distinct()
4.按索引位置删除行
df %>%
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 A 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 %>%
na.omit()
team points assists
1 A 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(points))
team points assists
1 A 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 A 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 A 4 1
2 A NA 3
3 C 9 2
4 C 9 2
其他资源
下面的教程解释了如何在dplyr中执行其他常用功能: