我有一個看起來像這樣的資料框:
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 值匹配時,我需要對所有列(CostA、CostB 等)進行求和/聚合。
當要求和的成本列已知時,我已經完成了類似的作業,通過使用:
aggregate(cbind(CostA,CostB) ~ Name Fruit, df, sum)
但是,我現在需要在不識別所有要求和的列的情況下完成。
uj5u.com熱心網友回復:
如果這些是唯一的列,則用于.指定formula
aggregate(.~ Name Fruit, df, sum)
如果還有其他列并且只想包含cost除“名稱”、“水果”之外的列,請subset使用select選項
aggregate(.~ Name Fruit,
subset(df, selct = c(Name, Fruit, startsWith(names(df), "Cost"))), sum)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/388779.html
上一篇:如何根據進入日期識別作業日
