Подсчет и суммирование последовательных нулей в столбце - PullRequest
0 голосов
/ 21 мая 2019

У меня большой фрейм данных с 600 000 строк, упорядоченных по DateTime (день / месяц / год / час) с 1950-2017 гг. Мне плевать на минуты. Я хотел бы посчитать количество последовательных нулей в столбце значений. Затем, когда появляется ненулевое значение, счет останавливается и возобновляется снова, когда появляется ноль. Пример кадра данных можно увидеть ниже.

     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

Я пытался использовать мутирование DateTime, затем группировать по (Год, Месяц), затем суммировать (Consecutive = list (rle (cumsum (c (TRUE), (Concepttive), затем напишите это как CSV. но я не могу понять это полностью.

Я отчаянно пытаюсь получить что-то похожее на это.

      Year    Month    Consecutive
      1950      1           3
      1950      1           1

Где 3 под последовательным символом соответствует трем нулям в ряду. По сути, я ищу код, который подсчитывает количество нулей, а затем помещает его в новый фрейм данных, которым я могу манипулировать.

...