R函数,用于每年对特定年龄的值进行求和

wfypjpf4  于 2023-11-14  发布在  其他
关注(0)|答案(1)|浏览(145)

当年龄在0到18岁之间和64到120岁之间(所以2个不同的组)时,我想求和BEFO(here)。它必须在每年重复(时间在2008到2017之间)。
我试着一步一步成功地做,但不是用函数或循环,所以我想要一个比我更好的方法。
谢谢.

slmsl1lt

slmsl1lt1#

在本例中,您可以使用dplyr,并假设您已成功将数据集加载到名为df的data.frame中,您可以执行以下操作:

library(dplyr)
df %>% group_by(
    year,
    age_group = ifelse(age <= 18, '0 - 18', ifelse(age >= 64, '64 - 120', '19 - 63'))
  ) %>% summarise(BEFO=sum(BEFO))

字符串
挑战在于为group创建足够的标签。您可以在单独的mutate调用中完成此操作,或者像我在这里所做的那样在group_by中进行动态操作。如果单独执行,则可读性更强:

df %>% 
  mutate(agegroup = c(0, 18, 64, 121), right=FALSE, labels=c('0-18','19-63','64-120'))) %>%
  group_by(agegroup, year) %>%
  summarise(BEFO=sum(BEFO))


(and对不起,使用两种不同的方法将年龄组划分为不同的组)

相关问题