删除 R 中的重复行(基于 2 列)

标签 r duplicates data.table

我在 R 中有一个数据集,如下所示:

    x1 x2  x3
1:  A Away  2
2:  A Home  2
3:  B Away  2
4:  B Away  1
5:  B Home  2
6:  B Home  1
7:  C Away  1
8:  C Home  1

根据 x1 和 x2 列中的值,我想删除重复的行。我尝试了以下方法:
df[!duplicated(df[,c('x1', 'x2')]),]

它应该删除第 4 行和第 6 行。但不幸的是它不起作用,因为它返回完全相同的数据,重复项仍然存在于数据集中。我必须使用什么才能删除第 4 行和第 6 行?

最佳答案

我只会做:

unique(df, by=c("x1", "x2")) # where df is a data.table

如果您只是查看 ?unique,这将非常明显。 .

PS:鉴于你的Q中的语法,不知道你是否知道data.table和data.frame的语法之间的基本区别。我建议你阅读 vignettes第一的。

关于删除 R 中的重复行(基于 2 列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38638262/

相关文章:

r - 使用color参数时,更改R {graphics}中的alpha值

python - 使用 R/igraph,有没有办法在考虑唯一节点属性的计数的情况下找到节点之间的最短路径?

c# - LINQ:跳过并获取重复项

mysql - 删除MySQL中的重复记录,包括原始记录

r - data.table 滞后运算符抛出错误

R 深网包 : how to add more hidden layers to my neural network?

r - data.table列删除速度

r - 基于 join 更新 data.table 的子集

mysql - sql删除除2个重复项之外的所有内容

r - 通过 data.table 中的引用了解分配的优化消息