r - 逐行计算列表列中的实例数

标签 r dplyr purrr

我正在使用一个包含整数列表列的数据框。列表列中的每个元素对应于数据框中的一行,现在我想计算有多少个链接。

dput包括一列link_count指示此数据样本的正确计数:

move link_count links
   1          1    NA
   2          0     1
   3          1    NA
   4          1     3
   5          4     4
   6          1     5
   7          0  5, 6
   8          2     5
   9          0     8
  10          0  5, 8

#dput results saved as `x`
x <- structure(list(move = 1:10, link_count = c(1, 0, 1, 1, 4, 1, 0, 2, 0, 0), links = list(NA_integer_, 1L, NA_integer_, 3L, 4L, 5L, 5:6, 5L, 8L, c(5L, 8L))), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"), .Names = c("move", "link count", "links"))

我找到了一个使用 left_join 的解决方案,但我认为可能有一个更优雅的解决方案可以使用 dplyr::mutate 逐行执行此操作。 ,或purrr::map工作流程。我希望能够通过一系列管道来完成一些事情。

#This works, but is there a different way?
left_join(x,
      x %>% unnest(links) %>% count(links),
      by = c("move" = "links"))

最佳答案

base R 选项是。这里,缺少的元素是 NA 而不是 0s

as.numeric(table(unlist(x$links))[as.character(x$move)])

关于r - 逐行计算列表列中的实例数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52416817/

相关文章:

r - 使用 .id 使用 purrr::map_df 制作输入项列,无需复制命名向量的输入

r - 如何将轴添加到 3D 直方图 (rgl)

r - 将数据帧拆分为多个数据帧

r - dplyr 中的向量化列运算

r - 如何让 combn 在 dplyr::mutate 中工作?

R - 按名称将多个 2 级元素附加到列表的每个 1 级元素

r - 在 R 中转换为几列的日期?

r - 在R中唯一化重复的列名

r - 是否有可能有一个 Shiny 的条件面板,其条件是全局变量?

r - 如何最好地在一行中迭代 prop.test ,最好使用 purrr ?