我有一个大型数据框,其中包含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下对应于连续三个零。基本上,我正在寻找对零进行计数的代码,然后将其放入我可以操纵的新数据帧中。