我想将df按三列进行分组,并添加一个新行,该行将是第四列的总和。
我的数据看起来像
fc <- c("F","F","E","TF","TF")
group_code <- c("Egg_x","Egg_y","Egg_x","Egg_y")
id <- c(1,1,1)
value <- c(2,21,4,3,20,15)
df <-data.frame(cbind(fc,group_code,id,value))
> df
fc group_code id value
1 F Egg_x 1 2
2 F Egg_y 1 21
3 E Egg_x 1 4
4 E Egg_y 1 3
5 TF Egg_x 1 20
6 TF Egg_y 1 15
在此示例中,我想创建一个包含Egg_x
和Egg_y
的新组,我可以使用df$group <- sub('\\_.*','',df$group_code)
进行此操作,我们有
> df
fc group_code id value main_group
1 F Egg_x 1 2 Egg
2 F Egg_y 1 21 Egg
3 E Egg_x 1 4 Egg
4 E Egg_y 1 3 Egg
5 TF Egg_x 1 20 Egg
6 TF Egg_y 1 15 Egg
我想为fc
列的每个值添加一个新行,以便我对fc,id和main_group进行分组,并获取value列的总和。
我的末端df应该如下所示:
> df
fc group_code id value main_group
1 F Egg_x 1 2 Egg
2 F Egg_y 1 21 Egg
3 F Egg 1 23 Egg
4 E Egg_x 1 4 Egg
5 E Egg_y 1 3 Egg
6 E Egg 1 7 Egg
7 TF Egg_x 1 20 Egg
8 TF Egg_y 1 15 Egg
9 TF Egg 1 35 Egg
在上述df中,每三行中的值元素为前两个元素之和。
谢谢