суммирование по дневным максимальным значениям

Я пытаюсь написать сценарий R, который будет проходить через фрейм данных, который я импортирую из электронной таблицы Excel (формат см. ниже), и находить сумму ежедневных значений до дневных максимумов (включая дневные максимумы)

Данные выглядят примерно так:

5/1/2012  0:00  0         
5/1/2012  3:00  1
5/1/2012  6:00  2
5/1/2012  9:00  5
5/1/2012 12:00  3
5/1/2012 15:00  6
5/1/2012 18:00  2
5/1/2012 21:00  1
5/2/2012  0:00  2
5/2/2012  3:00  3
5/2/2012  6:00  6
5/2/2012  9:00  4
5/2/2012 12:00  6
5/2/2012 15:00  7
5/2/2012 18:00  9
5/2/2012 21:00  1

Таким образом, функция, которую я предполагаю, вернется:

1 5/1/2012 15:00 17
2 5/2/2012 18:00 35

Есть идеи?


person Brett Michael    schedule 21.06.2012    source источник
comment
Разве вы не хотите, чтобы 1-я строка была 5/1/2012 0:00 2?   -  person ChrisW    schedule 22.06.2012
comment
это тоже можно прочитать, то, о чем я написал, - это просто пример. Я отредактировал сообщение, чтобы отразить это.   -  person Brett Michael    schedule 22.06.2012
comment
Итак, что вы уже пробовали?   -  person ChrisW    schedule 22.06.2012
comment
Похоже на этот вопрос: ссылка   -  person John    schedule 22.06.2012
comment
Эм, что не так с ответом, данным в прошлый раз? stackoverflow.com/a/11109989/889604   -  person ChrisW    schedule 22.06.2012
comment
Да, но на этот раз я ищу функцию для суммирования до дневного максимума.   -  person Brett Michael    schedule 22.06.2012
comment
@ChrisW эти ответы были великолепны. Я искал совет, суммирующий все дневные значения до дневного максимума в этом случае.   -  person Brett Michael    schedule 22.06.2012


Ответы (1)


Вот очень небольшая поправка к ответу @Thierry на ваш последний вопрос.

dat.str <- '5/1/2012  0:00  0 
5/1/2012  3:00  1
5/1/2012  6:00  2
5/1/2012  9:00  5
5/1/2012 12:00  3
5/1/2012 15:00  6
5/1/2012 18:00  2
5/1/2012 21:00  1
5/2/2012  0:00  2
5/2/2012  3:00  3
5/2/2012  6:00  6
5/2/2012  9:00  4
5/2/2012 12:00  6
5/2/2012 15:00  7
5/2/2012 18:00  9
5/2/2012 21:00  1
'

dat <- read.table(textConnection(dat.str))

library(plyr)
ddply(dat, .(V1), function(x){
   sum(x[1:(which.max(x$V3)), "V3"])
})

Я бы сказал также, что вы не проявили ни инициативы, ни работы. РЕДАКТИРОВАТЬ @John да, ОП немного изменил данные, так как последний вопрос был отредактирован, чтобы отразить это.

person shhhhimhuntingrabbits    schedule 21.06.2012
comment
Да, некоторые из нас новичок в R и борются с этим. Даже когда вы точно знаете, чего хотите, небольшая синтаксическая ошибка может помешать вам получить то, что вы хотите. Извините, и спасибо за помощь. - person Brett Michael; 22.06.2012
comment
@BrettMichael Что за небольшая синтаксическая ошибка? Вы не показали нам никакого кода. Получается, что вы ничего не пробовали. Программирование — это больше, чем просто знание того, чего вы хотите. - person GSee; 22.06.2012
comment
Я не уверен, что это работает. duplicate 'row.names' are not allowed - person John; 22.06.2012