Dplyr唯一计数和同一数据帧中的一般计数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dplyr唯一计数和同一数据帧中的一般计数相关的知识,希望对你有一定的参考价值。

有没有办法在一行代码中执行此操作,从而产生一个数据帧而不是两个,如下所示:

df1 <- mtcars %>% group_by(gear, carb) %>%
distinct(gear, cyl, am) %>%
summarise(UniqCnt = n()

df2 <- mtcars %>% group_by(gear, carb) %>%
summarise(Cnt = n())

我尝试过这个

attempt1 <- mtcars %>% (group_by(gear, carb) %>%
    distinct(gear, cyl,am) %>%
    summarise(UniqCnt = n()))  %>% 
  (group_by(gear, carb) %>%
    summarise(Cnt = n()))

但它不起作用。我可以对这两个人进行争辩,但我不愿意这样做。

先感谢您。

答案

您可以在n_distinct()中使用summarize()函数。例如

mtcars %>% group_by(gear, carb) %>% 
  summarize(UniqCnt = n_distinct(am), Cnt=n())

#     gear  carb UniqCnt   Cnt
#    <dbl> <dbl>   <int> <int>
#  1     3     1       1     3
#  2     3     2       1     4
#  3     3     3       1     3
#  4     3     4       1     5
#  5     4     1       1     4
#  6     4     2       2     4
#  7     4     4       2     4
#  8     5     2       1     2
#  9     5     4       1     1
# 10     5     6       1     1
# 11     5     8       1     1
另一答案

这个怎么样:

df1 <- mtcars %>%
          group_by(gear, carb) %>%
          summarise(UniqCnt = n_distinct(gear, cyl, am),
                    Cnt = n())

以上是关于Dplyr唯一计数和同一数据帧中的一般计数的主要内容,如果未能解决你的问题,请参考以下文章

R中唯一值的累积计数

spark scala数据帧中键值对的增量值计数

Dplyr条件逻辑计数行数

R(dplyr)中复位的条件运行计数(累计和)

拆分数据框字符串列并计数项目。 (dplyr 和 R)

使用dplyr计数和分组