r - 在仅包含选定列的数据框中唯一

标签 r unique

我有一个包含 >100 列的数据框,我将通过仅比较其中两列来找到唯一的行。我希望这是一个简单的方法,但我自己无法让它与uniqueduplicate一起使用。

在下面,我想仅使用 idid2:

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/

相关文章:

r - 错误在plot.nn : weights were not calculated

r - R 中 'cumsum' 对象的 "difftime"的等效函数

php - "Unique 7 character string"- 相关问题

php - MySQL查询后使用PHP输出唯一数据

MySql Workbench 语法错误

r - SQL数据库发生变化时,如何让renderUI发生变化?

mysql - 用R还是mysql计算时间段 yield ?

r - 按列值对数据框中的每一行进行排序

ajax - 通过 Ajax 调用并使用 Rails 3 中的适当消息验证字段唯一性

python - 根据对象属性唯一化对象列表的最快方法