![](/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.