繁体   English   中英

按 R 中的组计算平均值

[英]Calculate a mean by groups in R

我想计算大陆每年平均值

结果将是这样的:

Mainland 1990 1991 1992 1993 ...
Europe     1    55  66   678
Asia       43   6    7
Oceania          .
Americas         .
Africa           .

首先,我选择了我需要的列,然后尝试使用 R 中的 dplyr 包进行计算,但它不起作用。

gr1 <- homicide_ratios %>% 
  select('Mainland', matches("[0-9]{4}")) 

gr1 %>% 
  group_by(Mainland) %>% 
  summarise(media = mean(gr1[, 2:ncol(gr1)], na.rm = T))

我给你看数据集:

在此处输入图片说明

提前致谢。

思路是将数据的格式从宽格式改为长格式,然后对数据进行分组汇总如下;

library(dplyr)
library(tidyr)

homicide_ratios <-
  data.frame(
    Mainland = c("Europe", "Asia", "Oceania", "Americas", "Africa"),
    "1990" = c(1, 2, 3, 4, 5),
    "1991" = c(1, 2, 3, 4, 5),
    "1992" = c(1, 2, 3, 4, 5),
    "1993" = c(1, 2, 3, 4, 5)
  )

homicide_ratios %>%
  gather(key = "year", value = "rate", -Mainland) %>%
  group_by(Mainland, year) %>%
  summarize(average = mean(rate))

# # A tibble: 20 x 3
# # Groups:   Mainland [5]
# Mainland year  average
# <fct>    <chr>   <dbl>
#   Africa   X1990       5
#   Africa   X1991       5
#   Africa   X1992       5
#   Africa   X1993       5
#   Americas X1990       4
#   Americas X1991       4
#   Americas X1992       4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM