当年龄在0到18岁之间和64到120岁之间(所以2个不同的组)时,我想求和BEFO(here)。它必须在每年重复(时间在2008到2017之间)。我试着一步一步成功地做,但不是用函数或循环,所以我想要一个比我更好的方法。谢谢.
slmsl1lt1#
在本例中,您可以使用dplyr,并假设您已成功将数据集加载到名为df的data.frame中,您可以执行以下操作:
dplyr
df
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中进行动态操作。如果单独执行,则可读性更强:
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对不起,使用两种不同的方法将年龄组划分为不同的组)
1条答案
按热度按时间slmsl1lt1#
在本例中,您可以使用
dplyr
,并假设您已成功将数据集加载到名为df
的data.frame中,您可以执行以下操作:字符串
挑战在于为group创建足够的标签。您可以在单独的
mutate
调用中完成此操作,或者像我在这里所做的那样在group_by
中进行动态操作。如果单独执行,则可读性更强:型
(and对不起,使用两种不同的方法将年龄组划分为不同的组)