Поскольку кажется, что вы все еще находитесь в "фазе старта", я подумал, что пример использования пакета plyr будет полезен. plyr - чрезвычайно удобная библиотека, которая позволяет вам гибко (и кратко - как вы увидите ниже) гибко (и кратко - как вы увидите ниже) гибко (и кратко - как вы увидите ниже) обмениваться наборами данных / кубиками, так что вам, вероятно, стоит потратить на это время. Если вам понадобится выполнить аналогичные операции с очень большими наборами данных, вы можете также изучить пакет data.table .
Я предполагаю, что вы проделали у Романа трюк textConnection
, чтобы получить данные в фрейм данных с именем mmf
.
Я добавляю столбец idx
к mmf
, чтобы вы могли установить его подмножество и обработать группу результатов по группам:
library(plyr)
# mmf <- read.table(textConnection( ...
rle.idx <- rle(mmf$z)
mmf$idx <- rep(seq(RLE$lengths), RLE$lengths)
ans <- ddply(mmf, .(idx), colwise(sum))
А ans
выглядит так:
x y z idx
0 0 6 1
49 7 0 6
10 0 1 3
0 0 2 4
11 11 0 20
0 0 2 6
18 0 4 7
Просто удалите столбец idx
и все готово, например:
ans <- ans[, -4]