R函数为每年特定年龄的值求和

R函数为每年特定年龄的值求和,r,R,当年龄介于0到18岁之间,介于64到120岁之间时,我想对BEFO()进行求和(所以有两个不同的组)。必须每年重复一次(时间从2008年到2017年) 我尝试并成功地一步一步地去做,但不是用函数或循环,所以我想要一个比我更好的方法 谢谢 一定要试着按照评论去问一个好问题。在您的情况下,您可以使用dplyr,并假设您已成功地将数据集加载到名为df的data.frame中,您可以执行以下操作: library(dplyr) df %>% group_by( year, age_

当年龄介于0到18岁之间,介于64到120岁之间时,我想对BEFO()进行求和(所以有两个不同的组)。必须每年重复一次(时间从2008年到2017年)

我尝试并成功地一步一步地去做,但不是用函数或循环,所以我想要一个比我更好的方法


谢谢

一定要试着按照评论去问一个好问题。在您的情况下,您可以使用
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))

(很抱歉使用了两种不同的方法将年龄组划分为不同的垃圾箱)

嗨,我没有任何例子,我尝试了一些,但可能离目标很远。你好。你可以举个例子。只需采集数据帧的样本(如您所附的图片所示……类似于
dput(head(df))
的内容将生成一个可复制的示例)或创建一个玩具示例并共享。在任何情况下,您都必须有一个示例以及预期的输出。另外,请确保添加失败的尝试,这很好。请考虑回答和/或接受答案。
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))