只是一个简单的问题。 我有一个数据框(只显示一个向量),如下所示:
CLN1
一个
b
一个
一个
ç
d
一个
....
我想要以下输出:
CLN1
b
ç
d
换句话说,我想删除所有复制的项目。函数“unique”和“duplicatelicated”返回输出,包括一次表示的复制元素。我想明确删除它。
答案 0 :(得分:9)
您可以使用setdiff
:
R> v <- c(1,1,2,2,3,4,5)
R> setdiff(v, v[duplicated(v)])
[1] 3 4 5
答案 1 :(得分: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])]
答案 2 :(得分:2)
使用table
的另一种方式:
使用@ juba的数据:
as.numeric(names(which(table(v) == 1)))
# [1] 3 4 5
对于OP的数据,由于它是字符输出,因此不需要as.numeric
。
names(which(table(v) == 1))
# [1] "b" "c" "d"