计算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中的年度总和和平均值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Datagrid:计算页脚中列的平均值或总和

有没有办法在 Python 中计算年度移动平均值?

如何计算数组中元素的总和和平均值?

win7如何用电脑计算器计算总和,平均值和总体标准偏差

从spotfire中的总和和计数创建一个平均列

使用 data.table 包滚动平均值到 R 中的多个变量