检查独特元素
问题描述:
只是一个简单的问题。 我有一个数据帧(仅一个向量被示出),看起来像:检查独特元素
CLN1
甲
b
甲
甲
Ç
d
甲
... 。
我想跟随克输出:
CLN1
b
Ç
d
换句话说,我想删除被复制的所有项目。函数“unique”以及“duplicated”返回包含一次代表的复制元素的输出。我想明确地删除它。
答
您可以使用setdiff
为:
R> v <- c(1,1,2,2,3,4,5)
R> setdiff(v, v[duplicated(v)])
[1] 3 4 5
答
你可以使用count
从plyr
包来算项目的出现次数,并删除谁发生不止一次所有。
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
注意!
,这意味着NOT
。当然,你把这个在oneliner:
l[!l %in% with(count(l), x[freq > 1])]
答
使用table
另一种方式:
随着@朱巴的数据:
as.numeric(names(which(table(v) == 1)))
# [1] 3 4 5
对于OP的数据,因为它的字符输出,as.numeric
不需要。
names(which(table(v) == 1))
# [1] "b" "c" "d"
+1对于使用普通R的紧凑解决方案 – 2013-02-27 14:15:46
非常感谢您的支持!它运作良好! – Fuv8 2013-02-27 14:21:41