簡體   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