检查独特元素

Fuv*_*uv8 4 r

只是一个简单的问题.我有一个数据框(只显示一个向量),如下所示:

cln1
A
b
A
A
c
d
A
....

我想要以下输出:

cln1
b
c
d

换句话说,我想删除所有复制的项目.函数"unique"和"duplicatelicated"返回输出,包括一次表示的复制元素.我想明确删除它.

jub*_*uba 9

你可以用setdiff它:

R> v <- c(1,1,2,2,3,4,5)
R> setdiff(v, v[duplicated(v)])
[1] 3 4 5
Run Code Online (Sandbox Code Playgroud)


Pau*_*tra 5

你可以使用countplyr包来算项目的出现次数,并删除谁发生不止一次所有.

library(plyr)
l = c(1,2,3,3,4,5,6,6,7)
count_l = count(l)
  x freq
1 1    1
2 2    1
3 3    2
4 4    1                                                                           
5 5    1                                                                           
6 6    2                                                                           
7 7    1  
l[!l %in%  with(count_l, x[freq > 1])]
[1] 1 2 4 5 7  
Run Code Online (Sandbox Code Playgroud)

注意!,这意味着NOT.你当然把它放在一个oneliner上:

l[!l %in%  with(count(l), x[freq > 1])]
Run Code Online (Sandbox Code Playgroud)

  • 为什么没有人不想使用plyr;) (3认同)