R中具有唯一组合的子集行

时间:2017-08-09 18:18:04

标签: r machine-learning dplyr tidyr

> df1 = data.frame(v1=c('a','a','c','x','y','z'),v2=c('b','c','a','y','z','y'),v3=c('c','b','b','z','x','x'))
   v1 v2 v3
1  a  b  c
2  a  c  b
3  c  a  b
4  x  y  z
5  y  z  x
6  z  y  x

所需的o / p:

   v1 v2 v3
   a  b  c 
   x  y  z

或(订单无关紧要)

   v1 v2 v3
   c  a  b
   z  y  x

我试图在数据框中找到唯一的行组合。

我试过了

unique(df[,c('v1','v2','v3'))

但是,我没有得到理想的输出。我有多个组合的数据帧,也包括NA。 请帮帮我。

1 个答案:

答案 0 :(得分:0)

以下内容适用于您的数据示例,我相信它也适用于较大的数据集。

inx <- !duplicated(apply(df1, 1, function(x) paste(sort(x), collapse = "")))
df1[inx, ]
  v1 v2 v3
1  a  b  c
4  x  y  z