[英]the most efficient way to merge the range group in r?
Age_Group Region Population
<fct> <fct> <int>
1 0-4 ENGLAND 3384925
2 5-9 ENGLAND 3497402
3 10-14 ENGLAND 3166038
4 15-19 ENGLAND 3120730
5 20-24 ENGLAND 3526141
6 25-29 ENGLAND 3831624
7 30-34 ENGLAND 3757400
8 35-39 ENGLAND 3642643
9 40-44 ENGLAND 3442758
10 45-49 ENGLAND 3850108
嘿伙計們,你有最有效的方法來按不同的時間間隔合並年齡組,比如 5 歲或 10 歲,以形成下面的列表。
Age_Group Region Population
<fct> <fct> <int>
1 0-9 ENGLAND xxx
2 10-19 ENGLAND xxx
3 20-29 ENGLAND xxx
...
這是一個tidyverse
可能性
library(tidyverse)
df %>%
mutate(grp = rep(1:(nrow(.)/2), each = 2)) %>%
group_by(grp) %>%
mutate(
Age_Group = paste(Age_Group, collapse = ":"),
Age_Group = gsub("-\\d+:\\d+", "", Age_Group)) %>%
mutate(Population = sum(Population)) %>%
slice(1) %>%
ungroup() %>%
select(-grp)
## A tibble: 5 x 3
# Age_Group Region Population
# <chr> <fct> <int>
#1 0-9 ENGLAND 6882327
#2 10-19 ENGLAND 6286768
#3 20-29 ENGLAND 7357765
#4 30-39 ENGLAND 7400043
#5 40-49 ENGLAND 7292866
說明:正如@DavidArenburg 所提到的,我們按每兩行對條目進行分組,通過組合每兩行的Age_Group
條目來創建一個新的Age_Group
標簽,然后聚合Population
條目。 大多數工作來自創建新的Age_Group
標簽。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.