我希望能够从向量中保留非重复值,但不保留重复值中的任一元素。unique()函数无法做到这一点,duplicated()函数也不行。
例如:
> 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
我希望结果是:2、3、5、7、8。你们有什么好的方法吗?谢谢!
我希望能够从向量中保留非重复值,但不保留重复值中的任一元素。unique()函数无法做到这一点,duplicated()函数也不行。
例如:
> 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
我希望结果是:2、3、5、7、8。你们有什么好的方法吗?谢谢!
我们可以使用 duplicated
test[!(duplicated(test)|duplicated(test, fromLast=TRUE))]
#[1] 2 3 5 7 8
ave
函数来计算test
中按照唯一值分组后的子组长度,并保留仅包含一个元素的子组(即没有重复项的子组)。test[ave(test, test, FUN = length) == 1]
#[1] 2 3 5 7 8
test
是由字符组成的,请将seq_along
用作ave的第一个参数。test[ave(seq_along(test), test, FUN = length) == 1]