我想保留矢量中的非重复值,但不保留重复值中的一个元素。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
关于如何解决这个问题的任何想法?谢谢!
您可以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)
我们可以用 duplicated
test[!(duplicated(test)|duplicated(test, fromLast=TRUE))]
#[1] 2 3 5 7 8
Run Code Online (Sandbox Code Playgroud)