对某些变量求和并删除重复项

时间:2013-11-18 14:07:15

标签: r sum aggregate

我有一个data.frame,由33个变量组成,有254万个观测值。我创建了一个简单的data.frame,我将从中解释我的问题。

testdf
     borrower amount income
1        a   4000  30000
2        b   5000  20000
3        a   3000  30000

str(testdf)
'data.frame':   3 obs. of  3 variables:
 $ borrower: Factor w/ 2 levels "a","b": 1 2 1
 $ amount  : num  4000 20000 3000
 $ income  : num  30000 20000 30000

我想要的是,如果变量amount相同,则将变量borrower求和。但是,对于变量income,不能这样做。在此之后,必须删除副本。因此,在这种情况下,必须删除第3行。新的df必须如下所示:

testdf
     borrower  amount  income
     a          7000    30000
     b          5000    20000

变量borrower(例如a)中的值也可能出现8次。在这个问题上,我想再次总结8 amounts s,而不是income。并使用。

删除7行

1 个答案:

答案 0 :(得分:0)

以下是plyr的解决方案:

testdf <- data.frame(borrower = c("a", "b", "a"),
                     amount = c(4000, 5000, 3000),
                     income = c(30000, 20000, 30000))


library(plyr)
ddply(testdf, .(borrower), summarise, amount = sum(amount), income = income[1])

#   borrower amount income
# 1        a   7000  30000
# 2        b   5000  20000