列中连续零的计数和求和

时间:2019-05-21 19:46:37

标签: count cumsum summarize

我有一个大型数据框,其中包含1950-2017年间DateTime(日/月/年/小时)按日期排序的60万行。我不在乎分钟。我想计算value列中连续零的数量。然后,当出现非零值时,计数停止,并在出现零时重新开始。数据帧的示例如下所示。

     Year  Month  Day Hour  Value  DateTime 
     1950  1      1    0      0    1/1/1950  12:00:00 AM
     1950  1      1    1      0    1/1/1950   1:00 AM
     1950  1      1    2      0    1/1/1950   2:00 AM
     1950  1      1    3     .05   1/1/1950   3:00 AM
     1950  1      1    4     .01   1/1/1950   4:00 AM
     1950  1      1    5      0    1/1/1950   5:00 AM

我试过使用Mutate DateTime然后按(Year,Month)分组,然后进行总结(Consecutive = list(rle(cumsum(c(TRUE,(Consecutive), 然后将其写为csv。但我无法完全弄清楚。

我正拼命想要得到类似这样的东西。

      Year    Month    Consecutive
      1950      1           3
      1950      1           1

连续的3下对应于连续三个零。基本上,我正在寻找对零进行计数的代码,然后将其放入我可以操纵的新数据帧中。

0 个答案:

没有答案