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

等々。

私がやりたいことは、各人が発着信した通話の合計数を 2 つのマトリックスで取得することです。これは次のようになります。

 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 に答える