R - 条件增量

2024-01-03

这对代码来说应该是微不足道的,但无法在 R 中想到优雅的单行代码。我有一个数据框,如下所示:

data <- data.frame( index= seq(1:20), event=rep(0,20)   )
data$event[10] <- 1
data$event[15] <- 1

我只是想添加start and stop计数器列以 10 为单位递增,并在一次后立即重置event=1被观察到。因此,这两个附加列的所需输出将是:

  index event start stop
1   1    0     0    10
2   2    0    10    20
3   3    0    20    30
4   4    0    30    40
5   5    0    40    50
6   6    0    50    60
7   7    0    60    70
8   8    0    70    80
9   9    0    80    90
10  10   1    90    100
11  11   0    0     10
12  12   0    10    20
13  13   0    20    30
14  14   0    30    40
15  15   1    40    50
16  16   0    0     10
17  17   0    10    20
18  18   0    20    30
19  19   0    30    40
20  20   0    40    50

明显地,data$stop <- data$start + 10但我怎样才能apply() the start增量逻辑如所描述的那样?


这个怎么样:

Reduce(function(x,y) (1-y)*(x+10), data$event[-nrow(data)], accumulate=T, init=0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R - 条件增量 的相关文章

随机推荐