我在 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/