【问题标题】:Finding reciprocity among the data elements寻找数据元素之间的互惠性
【发布时间】:2020-11-02 17:18:08
【问题描述】:

我有一个 3 列数据,如下所示:

RowID callerid item_id 贡献者
28476 919471180334 1014038 911111111111
28477 919471180334 1026448 919939727689
28478 919471180334 1026334 918002321300
28479 919471180334 1026177 911111111111
28480 919471180334 1026063 919934520183
28481 919471180334 1026155 919939727689

有数百条记录。我需要找到列调用者 id 和贡献者 id 元素之间的互惠性。这意味着 callerID 收听了贡献者发布的项目的次数,反之亦然。在这种情况下有什么直接的函数有用吗?

【问题讨论】:

标签: r


【解决方案1】:

这是你要找的吗:

dat <- tibble::tribble(
~RowID,  ~callerid, ~item_id, ~contributor,
28476, 919471180334, 1014038, 911111111111,
28477, 919471180334, 1026448, 919939727689,
28478, 919471180334, 1026334, 918002321300,
28479, 919471180334, 1026177, 911111111111,
28480, 919471180334, 1026063, 919934520183,
28481, 919471180334, 1026155, 919939727689)


dat %>% group_by(callerid, contributor) %>%  summarise(n=n())
# `summarise()` regrouping output by 'callerid' (override with `.groups` argument)
# # A tibble: 4 x 3
# # Groups:   callerid [1]
#       callerid  contributor     n
#          <dbl>        <dbl> <int>
# 1 919471180334 911111111111     2
# 2 919471180334 918002321300     1
# 3 919471180334 919934520183     1
# 4 919471180334 919939727689     2

【讨论】:

    【解决方案2】:
    df <- data.frame(item_id = rep(919471180334, 6),
               contributor = c(911111111111,919939727689,918002321300,911111111111,919934520183,919939727689))
    

    基础 R 解决方案:

    as.data.frame(table(df))
    
       item_id  contributor Freq
    1 919471180334 911111111111    2
    2 919471180334 918002321300    1
    3 919471180334 919934520183    1
    4 919471180334 919939727689    2
    

    plyr

    plyr::count(df)
    
           item_id  contributor freq
    1 919471180334 911111111111    2
    2 919471180334 918002321300    1
    3 919471180334 919934520183    1
    4 919471180334 919939727689    2
    

    不同之处在于,plyr::count 不包括计数为零的组合,这对您的情况没有影响。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-16
      • 1970-01-01
      • 1970-01-01
      • 2017-01-16
      • 1970-01-01
      相关资源
      最近更新 更多