我有以下数据集:
ireland england france year
5 3 2 1920
4 3 4 1921
6 2 1 1922
3 1 5 1930
2 5 2 1931
我需要在1920年代和1930年代总结这些数据。所以我需要在1920 - 1922年为爱尔兰,英格兰和法国提供总分,然后在1930年,1931年为爱尔兰,英格兰和法国提供另外的总分。
有什么想法吗?我试过但失败了。
x <- read.table(text = "ireland england france
5 3 2 1920
4 3 4 1921
6 2 1 1922
3 1 5 1930
2 5 2 1931", header = T)
答案 0 :(得分:1)
如何将年份除以10然后总结?
library(dplyr)
x %>% mutate(decade = floor(year/10)*10) %>%
group_by(decade) %>%
summarize_all(sum) %>%
select(-year)
# A tibble: 2 x 5
# decade ireland england france
# <dbl> <int> <int> <int>
# 1 1920 15 8 7
# 2 1930 5 6 7
答案 1 :(得分:0)
如上所述A5C1D2H2I1M1N2O1R2T1,您可以使用findIntervals()
设置每年的相应十年,然后aggregate()
组py decade
txt <-
"ireland england france year
5 3 2 1920
4 3 4 1921
6 2 1 1922
3 1 5 1930
2 5 2 1931"
df <- read.table(text=txt, header=T)
decades <- c(1920, 1930, 1940)
df$decade<- decades[findInterval(df$year, decades)]
aggregate(cbind(ireland,england,france) ~ decade , data = df, sum)
输出:
decade ireland england france
1 1920 15 8 7
2 1930 5 6 7