计算R中的年度总和和平均值[重复]
Posted
技术标签:
【中文标题】计算R中的年度总和和平均值[重复]【英文标题】:Calculating yearly sums and mean in R [duplicate] 【发布时间】:2020-12-30 17:27:35 【问题描述】:我有一个类似的 df,我想计算它的年度总和和平均值。有没有更快更聪明的方法来获得完全相同的输出?尤其是计算平均值感觉很笨拙。我尝试使用mean()
,但没有成功。
a <- 1:10
b <- 5:14
c <- 36:45
d <- 22:31
year <- rep(2010:2014, 2)
df <- data.frame(a,b,c,d, year)
df[2,c(1,3,4)] <- NA
df[5,c(1,4)] <- NA
df[8,c(1,2)] <- NA
df_sums <- df %>% select(a, b, c, d, year) %>%
group_by(year) %>%
summarise(a_sum=sum(a, na.rm = T),
b_sum=sum(b, na.rm = T),
c_sum=sum(c, na.rm = T),
d_sum=sum(d, na.rm = T),
mean=(a_sum +
b_sum +
c_sum +
d_sum)/4)
【问题讨论】:
【参考方案1】:您可以使用across
按组计算各个列的sum
。要计算平均值,您可以对选定的列使用rowMeans
。
library(dplyr)
df %>%
group_by(year) %>%
summarise(across(a:d, sum, na.rm = TRUE)) %>%
ungroup %>%
mutate(mean = rowMeans(select(., a:d), na.rm = TRUE))
# year a b c d mean
# <int> <int> <int> <int> <int> <dbl>
#1 2010 7 15 77 49 37
#2 2011 7 17 42 28 23.5
#3 2012 3 7 81 53 36
#4 2013 13 21 83 55 43
#5 2014 10 23 85 31 37.2
【讨论】:
以上是关于计算R中的年度总和和平均值[重复]的主要内容,如果未能解决你的问题,请参考以下文章