[英]How can I use aggregate to calculate the average of a number of rows of a dataset?
我有一個看起來像這樣的數據集
yr<-c(2009, 2008, 2008, 2008, 2008, 2007, 2007, 2007, 2006, 2006, 2006, 2005, 2005, 2004, 2004, 2004, 2003)
Na<-runif(17, 20.0, 3.0)
NH4<- runif(17, 0.0, 1.0)
Ca<- runif(17, 1.0, 15.0)
dd<- data.frame(yr, Na, NH4, Ca)
實際數據集的平均差異是 3500 行長,所以手工做這件事有點問題。 我需要創建一個年平均值(平均每 5 年和 10 年)的新數據集......我嘗試使用聚合與教程中的基本代碼,但它沒有用......知道嗎?
dplyr
年計算平均值,您可以使用dplyr
包中的函數:
dd %>%
group_by(yr) %>%
summarise_at(vars(-group_cols()), mean)
# A tibble: 7 x 4
yr Na NH4 Ca
<dbl> <dbl> <dbl> <dbl>
1 2003 11.6 0.247 3.80
2 2004 11.9 0.323 8.69
3 2005 5.21 0.512 12.9
4 2006 13.1 0.312 5.68
5 2007 14.8 0.645 7.83
6 2008 11.1 0.479 7.72
7 2009 4.66 0.444 12.3
或者對於年的間隔,嘗試cut
功能:
dd %>%
mutate(yr2 = cut(yr, breaks = c(2000, 2005, 2010))) %>%
group_by(yr2) %>%
summarise_at(vars(-group_cols(), -yr), mean)
# A tibble: 2 x 4
yr2 Na NH4 Ca
<fct> <dbl> <dbl> <dbl>
1 (2000,2005] 9.60 0.373 9.27
2 (2005,2010] 12.0 0.476 7.61
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.