获得多个小计&在R中以表格形式的group_by

时间:2016-05-17 22:10:26

标签: r

我有一个电话数据集(CSV)。它包含几个列,但重要的列是"人员调用"和#34;人称为#34;。数据是所有字符串(名称)。完成的所有工作都是在这两个列数据的字符串上。如例:

Caller  Receiver
Alice   Mary
Kate    Betty
Alice   Betty
Mary    Kate | Jane
Jane    Alice

所需的输出形式是一个人和所做的人的呼叫次数。例如,上面的输出就像:

Caller  Receiver    CallFreq
Alice   Mary        1
        Betty       1
Kate    Betty       1
Mary    Kate        1
        Jane        1
Jane    Alice       1

此人进行的总呼叫可以包含在上表或另一个表中。

1 个答案:

答案 0 :(得分:0)

在这种情况下,tidyr包中的不需要的功能非常有用。

output <-
  mydata %>% 
  group_by(Caller) %>%
  summarise(Receiver = paste(unique(Receiver), collapse=' | ')) %>%
  mutate(Receiver = strsplit(Receiver, ' \\| ')) %>%
  unnest(Receiver) %>%
  group_by(Caller) %>%
  mutate(CallFreq = 1, TotalCalls = n_distinct(Receiver))

要直接运行上述代码,您需要使用dplyr,magrittr和tidyr软件包。