r - 测试一个值在 R 中的向量中是否唯一

标签 r vector unique

让我们假设以下示例:

test<-c(1:5,3:7)

这使
test
[1] 1 2 3 4 5 3 4 5 6 7

我想要一个简单的函数,如果该值在向量中是唯一的,则返回 TRUE。
[1] TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE

我试过的:
unique(test) 只给我返回唯一值,包括那些重复的值。duplicated(test) 还给我
[1] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE TRUE FALSE FALSE

这显然不是所需的结果,因为函数按顺序测试重复的观察结果,并且第一次出现不计为重复。我当然可以通过包含 fromLast = T 并创建两个向量来反转控制序列。在这两个中,我可以创建一个表示真正独特值的第三个……但这太复杂了。
table(test) 允许我计算每个值的出现次数
test
1 2 3 4 5 6 7 
1 1 2 2 2 1 1 

这让我更接近我想要的,但仍然不是所需的结果(相同长度的向量,指示它在向量中是否唯一。)

所以有人知道如何更容易吗?

最佳答案

匹配运算符 %in% 非常有用。

!test %in% test[duplicated(test)]

关于r - 测试一个值在 R 中的向量中是否唯一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32150213/

相关文章:

r - 批处理模式引用参数解析

c++ - 对右值引用 vector::push_back 函数如何提高效率感到困惑

c++ - 如何在 C++ 中创建包含从 0 到 N 的元素的行 vector ?

c++ - 在 std::vector 中释放 Mat

php - 比较 2 个字符串,减去相同的字符并返回新值

r - 如何创建一个新列,其中包含 df 中的唯一值计数(按 r 中的组)

postgresql - Postgres UPSERT - 如果所有数据都相同则不更新?

r - 如何计算 R 中一项与另一项组合在一起的次数?

r - aov 公式错误项 : contradictory examples

r - 当保留高阶参数时,如何删除模型中的低阶参数?