gpt4 book ai didi

r - dplyr n_distinct 有条件

转载 作者:行者123 更新时间:2023-12-03 00:33:05 27 4
gpt4 key购买 nike

使用 dplyr 汇总数据集,我想调用 n_distinct 来计算列中唯一出现的次数。但是,我还想对满足另一列中的条件的列中所有唯一出现的情况执行另一个 summarise() 。

名为“a”的示例数据框:

A B
1 Y
2 N
3 Y
1 Y

a %>% summarise(count = n_distinct(A))

但是我还想添加 n_distinct(A) 的计数,其中 B == "Y"

结果应该是:

count
3

当您添加条件时,结果应该是:

count
2

我想要实现的最终结果是将两个语句合并到一个调用中,这给了我这样的结果

count_all  count_BisY
3 2

使用 dplyr 解决此问题的适当方法是什么?

最佳答案

这会使用 dplyr 根据 B 的每个值生成不同的 A 计数。

library(dplyr)
a %>%
group_by(B) %>%
summarise(count = n_distinct(A))

这会产生结果:

Source: local data frame [2 x 2]

B count
(fctr) (int)
1 N 1
2 Y 2

要使用 dplyr 生成上面添加的所需输出,您可以执行以下操作:

a %>% summarise(count_all = n_distinct(A), count_BisY = length(unique(A[B == 'Y'])))

这会产生结果:

  count_all count_BisY
1 3 2

关于r - dplyr n_distinct 有条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34637206/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com