![](/img/trans.png)
[英]How to check if values in individiual rows of a data.table are identical
[英]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.