【发布时间】:2017-07-07 02:41:14
【问题描述】:
我有一个 data.frame,我希望在匹配一组条件(匹配变量)后,在单独的列计数 1、2、3、4、5、6、7 等中......在条件之后满足,它会继续计数,直到下一个匹配出现。
如果我设置:
匹配
下面的data.frame是输出的一个例子:
roll.z.score.n3 sig.count
1 NA 0
2 NA 0
3 -1.135974424 1
4 0.193311168 2
5 0.714285714 3
6 -1.148753543 4
7 -0.942160394 5
8 0.695763683 6
9 1.140646864 7
10 0.985196899 8
11 -0.768766574 1
12 -1.011293858 2
13 -0.516703612 3
14 -1.120897077 4
15 1.091089451 5
16 0.968364052 6
17 0.872871561 7
18 1.099524999 8
19 0.918397948 9
在第 3 行,我们有一个低于 -1.0 的匹配项。所以计数存在,它一直持续到第 11 行低于 -1.0 的下一场比赛。然后开始计数......并且它将继续这样做,直到下一场低于 -1.0 的比赛。
感谢任何帮助!
编辑:回应洗礼
set.seed(123)
new.df$sig_long <- runif(13787,2,1)
cbind(new.df$sig_long, n = do.call(c, lapply(rle(new.df$sig_long < -1)[["lengths"]], seq_len)))
cbind(new.df$sig_long, n = do.call(c, lapply(rle(new.df$sig_long
【问题讨论】:
标签: r