我有一张桌子,例如
当Number,PetName,PetColour,OwnerName相同时,我需要总费用。 例如,如果其(123,John,Brown,George),即前两行,则前两列的总费用为37(25 + 12)。对于第三行,该数字不同于未添加到37的数字。
非常感谢!
答案 0 :(得分:2)
我们可以使用ave
中的base R
来创建按感兴趣的列分组的总和
df1$TotalCost <- with(df1, ave(Cost, Number, PetName PetColour,
OwnerName, FUN = sum))
或者在dplyr
library(dplyr)
df1 %>%
group_by(Number, PetName, PetColour, OwnerName) %>%
mutate(TotalCost = sum(Cost))