获取多个小计&;R中表格形式的分组依据

获取多个小计&;R中表格形式的分组依据,r,R,我有一个电话数据集(CSV)。它包含几个列,但重要的列是“人员呼叫”和“人员呼叫”。数据是所有字符串(名称)。整个工作都是在这两列数据的字符串上完成的。例如: Caller Receiver Alice Mary Kate Betty Alice Betty Mary Kate | Jane Jane Alice 所需的输出形式为一个人拨打的电话数量和拨打的电话数量。例如,上面的输出如下所示: Caller Receiver CallFreq Alice

我有一个电话数据集(CSV)。它包含几个列,但重要的列是“人员呼叫”和“人员呼叫”。数据是所有字符串(名称)。整个工作都是在这两列数据的字符串上完成的。例如:

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

该人员进行的总调用可以包含在上表或另一个表中。

在这种情况下,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))
输出%
分组依据(呼叫者)%>%
摘要(接收者=粘贴(唯一(接收者),折叠=“|”)%>%
突变(接受者=strsplit(接受者,\\\\\')%>%
未测试(接收器)%%>%
分组依据(呼叫者)%>%
变异(CallFreq=1,TotalCalls=n_distinct(接收方))

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

输入的形式是什么?首先,您需要使数据可读。我在Q中添加了更多细节。简单地说,它是一个包含多个列的CSV。但我的工作仅限于两列名称/字符串(调用者、接收者)。我试图将这些名称分组并计算频率,以获得类似的输出,如图所示。谢谢。非常感谢@MrFlick!!!谢谢我试过密码。它给了我一个错误“error:unsupported type for column'Call3'(NILSXP,classes=NULL)”知道如何解决这些问题吗,因为我的两个列都是字符串?嗯,我定义原始数据的方式是mydata感谢@coyin,我昨天尝试了“修复”。我用的是>read.csv(data,header=False,stringsAsFactors=False),这很奇怪。我试着用角色来代替因素,这对我很有效。使用下面的例子对你有用吗?我的数据