複製行,我可以得到一個data.table
dt
使用找到與原
dt[duplicated(dt, by=someColumns)]
重複排在R
不過,我想獲得對重複的行和「非重複」,例如考慮dt
:現在
col1, col2, col3
A B C1
A B C2
A B1 C1
,dt[duplicated(dt, by=c('col1', "col2"))
會給我沿着
我想給行,它沒有選擇複製一起得到這個,這是答案的
col1, col2, col3
A B C1
A B C2
速度對比:
> system.time(dt[duplicated(dt2, by = t) | duplicated(dt, by = t, fromLast = TRUE)])
user system elapsed
0.008 0.000 0.009
> system.time(dt[, .SD[.N > 1], by = t])
user system elapsed
77.555 0.100 77.703
哪裏這個'by'說法從何而來?在'?duplicated'的幫助頁面中沒有看到任何'by'參數。你是否使用'duplicated()'而不是'base'? – Chase 2014-11-02 20:16:32
@Chase'dt'是一個'data.table',我忘記提及了。 – FooBar 2014-11-02 20:22:27
同樣的邏輯適用,只是更新我的答案,以反映'data.table'實現。 – Chase 2014-11-02 20:29:59