R代码将group_by多列并汇总数据元素何时出现在列组中

时间:2019-04-08 15:23:58

标签: r

如何总结出现在一组列中的一组特定因素的计数?

我正在汇总出现在数据集中一组列中的一组特定因素(具体来说,可能出现在15个不同过程列中的医疗过程代码)。我想对这些列进行分组,然后在任何一组列中出现一组代码的任何时候进行汇总。这可能意味着指定的代码不会与单个数据记录互斥,我要查找的多个过程代码将在一行外观中出现重叠。

我使用以下虚拟df进行快速测试。我想总结跨“ Y”和“ Z”列的数据点“ b”和“ e”的计数。显然,我的摘要无法满足我的要求,但这只是我所了解的。

library(dplyr)

Mydata <- data.frame(W = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                     X = c(20, 30, 45, 54, 65, 78, 97, 102, 123, 156),
                     Y = c("a","b","c","d","e","e","f","f","f","g"),
                     Z = c("c","a","b","b","c","d","e","e","g","h"))

 test_group <- Mydata %>%   summarize_at(c(z, w), n = n())

预期结果将是一个包含以下内容的表格:

Specified_Data  n
             b  3
             e  4

1 个答案:

答案 0 :(得分:0)

另一个用户发布了答案,但看起来像是拉了下来。但是,它确实有效,所以我认为我可以将代码放入其中。可与dplyr一起使用。

Mydata %>%
  select(Y, Z) %>%
  gather(var, val) %>%
  filter(val %in% c("b", "e")) %>%
  count(val)

# A tibble: 2 x 2
  val       n
  <chr> <int>
1 b         3
2 e         4

控制台结果后会出现一条警告消息,但它似乎对代码行的工作没有任何影响。消息如下:

Warning message:
attributes are not identical across measure variables;
they will be dropped