R:从向量中提取非重复值(对于重复项不保留一个值)

ari*_*lle 5 r

我想保留矢量中的非重复值,但不保留重复值中的一个元素。unique()对此不起作用。都不会重复()。

例如:

> test <- c(1,1,2,3,4,4,4,5,6,6,7,8,9,9)
> unique(test)
[1] 1 2 3 4 5 6 7 8 9
Run Code Online (Sandbox Code Playgroud)

而我希望结果是:2,3,5,7,8

关于如何解决这个问题的任何想法?谢谢!

d.b*_*d.b 6

您可以ave用来计算length除以唯一值的子组的数量,test并仅保留长度为1 的子组(无重复的子组)

test[ave(test, test, FUN = length) == 1]
#[1] 2 3 5 7 8
Run Code Online (Sandbox Code Playgroud)

如果test由字符组成,请seq_along用作ave的第一个参数

test[ave(seq_along(test), test, FUN = length) == 1]
Run Code Online (Sandbox Code Playgroud)


akr*_*run 5

我们可以用 duplicated

test[!(duplicated(test)|duplicated(test, fromLast=TRUE))]
#[1] 2 3 5 7 8
Run Code Online (Sandbox Code Playgroud)