R Dataframe:根据其他 2 个列匹配对未定义的 num 列求和
R Dataframe: Sum undefined num columns based on 2 other column matches
我有一个如下所示的数据框:
Name Fruit CostA CostB
Adam Orange 2 5
Adam Apple 3 6
Bob Orange 3 5
Cathy Orange 4 3
Cathy Orange 5 7
数据框创建:
df=data.frame(Name=c("Adam","Adam","Bob","Cathy","Cathy"),Fruit=c("Orange","Apple","Orange","Orange","Orange"),CostA=c(2,3,3,4,5),CostB=c(7,8,9,3,4))
此数据框将通过 CostC、CostD 等未指定数量的列增长。当 Name 和 Fruit 值匹配时,我需要 sum/aggregate 所有列(CostA、CostB 等)。
当要求和的成本列已知时,我已经完成了类似的工作,方法是:
aggregate(cbind(CostA,CostB) ~ Name + Fruit, df, sum)
但是,我现在需要在不识别要求和的所有列的情况下完成。
如果只有这些列,请使用 .
指定 formula
中的其余列
aggregate(.~ Name + Fruit, df, sum)
如果还有其他列,并且除了 'Name'、'Fruit'、subset
和 select
之外,还想只包含 cost
列选项
aggregate(.~ Name + Fruit,
subset(df, selct = c(Name, Fruit, startsWith(names(df), "Cost"))), sum)
我有一个如下所示的数据框:
Name Fruit CostA CostB
Adam Orange 2 5
Adam Apple 3 6
Bob Orange 3 5
Cathy Orange 4 3
Cathy Orange 5 7
数据框创建:
df=data.frame(Name=c("Adam","Adam","Bob","Cathy","Cathy"),Fruit=c("Orange","Apple","Orange","Orange","Orange"),CostA=c(2,3,3,4,5),CostB=c(7,8,9,3,4))
此数据框将通过 CostC、CostD 等未指定数量的列增长。当 Name 和 Fruit 值匹配时,我需要 sum/aggregate 所有列(CostA、CostB 等)。
当要求和的成本列已知时,我已经完成了类似的工作,方法是:
aggregate(cbind(CostA,CostB) ~ Name + Fruit, df, sum)
但是,我现在需要在不识别要求和的所有列的情况下完成。
如果只有这些列,请使用 .
指定 formula
aggregate(.~ Name + Fruit, df, sum)
如果还有其他列,并且除了 'Name'、'Fruit'、subset
和 select
之外,还想只包含 cost
列选项
aggregate(.~ Name + Fruit,
subset(df, selct = c(Name, Fruit, startsWith(names(df), "Cost"))), sum)