首页 > 解决方案 > 数据帧的部分总和

问题描述

如果我有

year       veg  number
2017 aubergine       3
2017    tomato      13
2017  eggplant       4
2018 aubergine       1
2018    tomato      17
2018  eggplant       3

我怎样才能对每年的数据求和以aubergine获得eggplant

year       veg  number
2017 aubergine       7
2017    tomato      13
2018 aubergine       4
2018    tomato      17

?

标签: rdataframesum

解决方案


eggplant你可以用aubergineand 然后aggregate numbervegand覆盖year

x  <- read.table(header=TRUE, text="year       veg  number
2017 aubergine       3
2017    tomato      13
2017  eggplant       4
2018 aubergine       1
2018    tomato      17
2018  eggplant       3")

x$vegb  <- x$veg
x$vegb[x$vegb == "eggplant"]  <- "aubergine"

aggregate(number ~ vegb + year, data=x, FUN=sum)
#       vegb year number
#1 aubergine 2017      7
#2    tomato 2017     13
#3 aubergine 2018      4
#4    tomato 2018     17

推荐阅读