我希望在匹配设定标准(匹配变量)时,在单独的列计数1,2,3,4,5,6,7等中使用data.frame。如果符合,它将继续计数直到下一场比赛出现。
如果我设置:
匹配< - < -1.0
以下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&lt; -1)[[&#34; lengths&#34;]],seq_len))) do.call出错(c,lapply(rle(new.df $ sig_long&lt; -1)[[&#34; length&#34;]],seq_len)): &#39;什么&#39;必须是函数或字符串
答案 0 :(得分:0)
或许这样的事情,
set.seed(123)
x <- runif(20,-2,1)
cbind(x, n = do.call(c, lapply(rle(x < -1)[["lengths"]], seq_len)))