使用 dplyr 删除重复行

标签 r dplyr

我有一个像这样的数据框 -

set.seed(123)
df = data.frame(x=sample(0:1,10,replace=T),y=sample(0:1,10,replace=T),z=1:10)
> df
   x y  z
1  0 1  1
2  1 0  2
3  0 1  3
4  1 1  4
5  1 0  5
6  0 1  6
7  1 0  7
8  1 0  8
9  1 0  9
10 0 1 10

我想根据前两列删除重复的行。预期输出 -

df[!duplicated(df[,1:2]),]
  x y z
1 0 1 1
2 1 0 2
4 1 1 4

我专门寻找使用 dplyr 包的解决方案。

最佳答案

这是使用 dplyr >= 0.5 的解决方案。

library(dplyr)
set.seed(123)
df <- data.frame(
  x = sample(0:1, 10, replace = T),
  y = sample(0:1, 10, replace = T),
  z = 1:10
)

> df %>% distinct(x, y, .keep_all = TRUE)
    x y z
  1 0 1 1
  2 1 0 2
  3 1 1 4

关于使用 dplyr 删除重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22959635/

相关文章:

r - 提取模型摘要并将其存储为新列

r - 作为参数传递以应用函数的带引号的方括号的确切含义是什么?

r - 如何将背景包含到 R 图中?

R - hist(XX, plot=FALSE)$count 的更快替代品

r - 在 `dplyr` 中操作动态创建的变量名

r - 使用 dplyr 按行用以前的值填充缺失值

r - 使用包readxl将xlsx数据导入R时指定列类型

r - 在 rpart 分类树中打印没有科学记数法的日期

r - 根据前n行有条件地创建一个新列

r - 如何从大型数据框中删除 NA,但保留分隔列的结构?