Я изучаю пакет plyr, я использую встроенный набор данных «бейсбол» для своих упражнений. Вот пример данных (весь кадр данных достаточно широк, так что я только разместил часть, которая имеет отношение с точки тренировки зрения):learning plyr ddply - применение функции до точки
data(baseball)
baseball <- baseball[with(baseball, order(id, year)), ]
rownames(baseball) <- NULL
head(baseball[,c("id","year", "ab")])
id year ab
1 aaronha01 1954 468
2 aaronha01 1955 602
3 aaronha01 1956 609
4 aaronha01 1957 615
5 aaronha01 1958 601
6 aaronha01 1959 629
То, что я хочу сделать, это добавить еще один столбец что кадр данных, который будет содержать среднее «количество раз в летучей мыши» (переменные абы) до настоящего времени, так что в течение 3 первых строк она будет выглядеть следующим образом:
id year ab atb
1 aaronha01 1954 468 468
2 aaronha01 1955 602 535
3 aaronha01 1956 609 559.6667
Теперь я знаю, что я должен использовать ddply и преобразование но я не знаю, как синтаксис должен искать получение значения от значений до определенного индекса:
baseball <- ddply(baseball, ~ id, transform, atb = ???)
Поблагодарили бы за любую помощь.
Вы можете считать правопреемником 'plyr'package:' dplyr'. Там вы найдете функцию 'cummean'. Или просто 'base':' cumsum (df $ ab)/seq_along (df $ ab) '. – Henrik
Спасибо, второй синтаксис был именно тем, что я искал! – 3michalzak