r - 每次出现非重复数字时将值增加一
问题描述
v <- c(1,1,2,3,3,3,1,1,3,4,4)
我正在尝试创建一个元素向量,其中第一次出现的非重复数字总是相对于前一个数字增加一个。
这是所需的输出
1,1,2,3,3,3,4,4,5,6,6
这样做的有效方法是什么?
解决方案
基本 R 选项rle
> with(rle(v),rep(seq_along(values),lengths))
[1] 1 1 2 3 3 3 4 4 5 6 6
或者data.table::rleid
> data.table::rleidv(v)
[1] 1 1 2 3 3 3 4 4 5 6 6
推荐阅读
- c# - 如何在 .NET MVC 中下载谷歌驱动器文件而无需手动登录谷歌帐户?
- imacros - 使用 imacro 提取并使用倒计时
- django - Django 路径转换器引发 SynchronousOnlyOperation
- python - 创建一个脚本,该脚本接受输入,然后返回该事件在 Python 中发生的概率
- java - 如何解决此错误?" java.lang.NoSuchFieldError: org.apache.http.conn.ssl.SSLConnectionSocketFactory 的实例。
……” - c# - 通过自己的类创建全局字符串数组,但在不同的类方法C#中仍然无法识别
- reactjs - 将 @auth 添加到我的 aws amplify 架构时,为什么会出现未捕获的错误?
- python - 无法解压不可迭代的 ... 对象
- office-js - 将 Office.context.mailbox.addHandlerAsync 的结果传递给子组件
- android - 致命异常:java.net.UnknownHostException 无法解析主机“maps.googleapis.com”:没有与主机名关联的地址