我想计算每年的按大陆划分的平均值。
结果将类似于:
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))
我向您展示了数据集:
谢谢。
答案 0 :(得分:1)
想法是将数据的格式从宽格式更改为长格式,然后将数据分组并汇总如下;
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