r - R : 查找第 n 个重复项
问题描述
所以我有一个看起来像这样的向量:
x <- c(1,1,1,3,4,5,6,7,7,7,7)
我知道重复函数,但我希望 R 在第 n 个重复项之后返回一个布尔向量。因此,假设我有兴趣知道重复(或更多)的第三个数字,因此返回是:
FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
解决方案
一种可能是:
ave(duplicated(x), x, FUN = cumsum) >= 2
[1] FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
如果元素的运行可以重复:
x <- c(1,1,1,3,4,5,6,7,7,7,7,1,1,1)
rleid <- with(rle(x), rep(seq_along(values), lengths))
ave(duplicated(rleid), rleid, FUN = cumsum) >= 2
[1] FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE
[13] FALSE TRUE
推荐阅读
- android - LibGDX 样板代码 NullPointerException
- c# - 使用backgroudWorker C#时出现跨线程操作错误
- python - 如何随机生成变量名?
- scala - Scala:避免使用 ._ 的案例类
- ios - 在异步方法数之后执行代码
- java - Hadoop 中的简单程序得到 ClassNotFoundException
- javascript - 使用 Velocity.js 和 JQuery 的部分转换问题 ~ Glitching Animation
- r - ggplot 条形图和错误信息
- c# - 嵌套列表表单 ASP.NET MVC - 无法弄清楚如何编写控制器代码
- javascript - React.JS = Promise/Fetch API 有重复代码,我如何捆绑到自己的函数中