我有一个包含 >100 列的数据框,我将通过仅比较其中两列来找到唯一的行。我希望这是一个简单的方法,但我自己无法让它与unique
或duplicate
一起使用。
在下面,我想仅使用 id
和 id2
:
data.frame(id=c(1,1,3),id2=c(1,1,4),somevalue=c("x","y","z"))
id id2 somevalue
1 1 x
1 1 y
3 4 z
我想获得:
id id2 somevalue
1 1 x
3 4 z
或者:
id id2 somevalue
1 1 y
3 4 z
(我没有偏好保留哪一个唯一行)
最佳答案
好的,如果您选择非重复列中的哪个值并不重要,那么这应该很简单:
dat <- data.frame(id=c(1,1,3),id2=c(1,1,4),somevalue=c("x","y","z"))
> dat[!duplicated(dat[,c('id','id2')]),]
id id2 somevalue
1 1 1 x
3 3 4 z
在 duplicated
调用中,我只是仅传递 dat
中我不希望重复的那些列。此代码将自动始终选择任何不明确值的第一个。 (在本例中为 x。)
关于r - 在仅包含选定列的数据框中唯一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9944816/