只是一個簡單的問題。 我有一個數據幀(僅一個向量被示出),看起來像:檢查獨特元素
CLN1
甲
b
甲
甲
Ç
d
甲
... 。
我想跟隨克輸出:
CLN1
b
Ç
d
換句話說,我想刪除被複制的所有項目。函數「unique」以及「duplicated」返回包含一次代表的複製元素的輸出。我想明確地刪除它。
只是一個簡單的問題。 我有一個數據幀(僅一個向量被示出),看起來像:檢查獨特元素
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