0

我有一个长度超过 3000 行的大矩阵 df。我正在用 R 编程。它看起来像这样:

df:   person1    person2    calls
         1        3          5
         1        4          7
         2        11         6
         3        1          5
         3        2          1
         3        4          13

等等。

我想要做的是获取每个人在两个矩阵中拨打和接听的电话总数。这看起来像这样:

 calls:      person   madecalls             received:   person    receivedcalls
               1          12                              1            5
               2           6                              2            1
               3           19                             3            5
                                                          4            20
                                                          11           6

谁能帮我解决这个问题?

谢谢!

4

2 回答 2

0

.....plyr方式:

library(plyr)

ddply(df, .(person1), function(x) data.frame( madecalls = sum(x$calls) )
于 2013-11-14T14:49:42.203 回答
0

使用aggregate功能:

made.calls <- aggregate(df$calls, by = list(person = df$person1), fun = sum)
于 2013-11-14T14:51:03.070 回答