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唯一计数和同一数据帧中的一般计数的主要内容,如果未能解决你的问题,请参考以下文章