Я пытаюсь использовать агрегат в R, чтобы суммировать некоторые данные, а также вычислять значения для дополнительного столбца, используя следующие данные
новые данные
Year HNo County ST Month Day DuckBag GooseBag
2012 264120547 LA ND 10 13 6 0
2008 264080047 EDDY ND 9 27 4 1
2013 26430119 ROLETTE ND 10 20 3 0
2006 264060447 BURKE ND 10 25 5 0
2006 264061113 BENSON ND 10 2 3 1
2012 564120139 OLIVER ND 12 15 0 3
2013 26430294 TOWNER ND 10 10 2 0
2007 564070298 LOGAN ND 9 29 0 0
2007 564070869 SHERIDAN ND 10 21 0 0
2007 564070315 CASS ND 9 2 0 0
2005 264050791 SHERIDAN ND 10 15 3 0
2012 264120240 RAMSEY ND 11 1 6 0
2013 26431021 TOWNER ND 10 20 3 0
2013 56430774 NA ND 10 9 5 2
2006 264061288 BENSON ND 10 4 5 1
2005 264051006 EDDY ND 10 17 5 2
2010 264100848 MORTON ND 10 2 0 0
2011 264110151 CASS ND 10 8 4 1
2005 264051100 WARD ND 10 9 1 0
2013 26430194 MC ND 11 1 5 0
Я хотел бы объединить год и месяц с суммой DuckBag и GooseBag для каждой комбинации. Кроме того, я хотел бы подсчитать, сколько строк в каждой комбинации год / месяц имеет DuckBag или GooseBag> 0.
Я могу приблизиться к этим фрагментам кода, но не совсем так, как хочу.
aggregate(newdata$DuckBag,list(Year = newdata$Year, Month = newdata$Month),sum)
aggregate(DuckBag ~ Year+Month,data = newdata,FUN=function(newdata) c(total =sum(newdata), n=length(newdata) ) )
Будет ли dplyr работать лучше? Код dplyr, на который я смотрел, кажется более чистым, но не уверен, с чего начать с подсчета. Наконец, хотя я уверен, что он требует слишком многого, есть ли способ добавить столбец, который дает мне долю соответствующей общей суммы года, представленной этой суммой года / месяца? Большое спасибо.