繁体   English   中英

检查数据表中哪些行相同

[英]Check which rows in a data.table are identical

我需要一个解决方案,向我显示哪些行是相同的,但找不到聪明的解决方案(没有一堆复杂循环的解决方案)。 我希望有一个data.table解决方案。 我想要的是带有相同条目的行号的列表。

一个例子:

library(data.table)
Data <- data.table(A = c("a", "a", "c"), 
                   B = c("A", "A", "B"))

第一和第二行相同。 我想要的输出:

[[1]]
[1] 1 2

[[2]]
[1] 3

这是快速而肮脏的事情:

Data[, .(.I, .GRP), by = .(A, B)][, list(split(I, GRP))]$V1

可以简化为:

Data[, .(list(.I)), by = .(A, B)]$V1

那就是我的解决方案,直到sindri_baldur提出了一个更好的解决方案:

Data.unique <- unique(Data)
Data.unique[, G := .I]
Data[, I := .I]
Data.full <- 
  merge(Data,
        Data.unique,
        by = c("A", "B"))

Data.full %>% 
  split(by = "G") %>% 
  map(~ .x[, I])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM