首页 > 解决方案 > R 反向复位计数器到复位时间

问题描述

嗨,我有一个数据框

输入:Data$cyclesFromLastError

每次发生错误时都会休息。

输入:

0 1 2 3 4 0 1 2 3 0 1 2 3 4 5 

我想创建新列输出:Data$cyclesToNextError

4 3 2 1 0 3 2 1 0 5 4 3 2 1 0

我需要那个脚本

标签: arraysrsortingreverse

解决方案


我们可以使用ave, 在每次出现 0 时创建组,xrev为每个组创建序列。

ave(x, cumsum(x == 0), FUN = rev)
#[1] 4 3 2 1 0 3 2 1 0 5 4 3 2 1 0

数据

x <- c(0, 1, 2, 3, 4, 0, 1, 2, 3, 0, 1, 2, 3, 4, 5)

推荐阅读