在数据元素之间寻找互惠关系



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

RowID callerid item_id contributor
28476 919471180334 1014038 911111111111
28477 919471180344 1026448 919939727689
28478 919471180337 1026334 918002321300
28479 919471180343 1026177 911111111111111
28480 919471180342 1026063 919934520183
28481 919471180346 1026155 9199397276689

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

这就是您想要的:

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
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不包括计数为零的组合,这对您的情况没有影响。

最新更新