是否可以在R中添加一个例外来进行总结(计数= n_distinct(x))?

时间:2019-09-26 21:43:45

标签: r dataframe dplyr summarize

是否可以向R中的summarize(count = n_distinct(x))添加一个例外,同时允许“正常” summarize(count = n()) function对例外进行计数?

如何结合计数n()n_distinct()函数来创建一个新列?

这样,我可以在x列中汇总观察值的不同计数,同时以观察值的形式添加一个例外,该例外不仅限于不同的计数,而应受“正常” summarize(count = n()) function

例如,如果为x = c(1, 2, 2, 4, 5, 8, 8, ..., 99),我可以总结除8列中的观测值x以外的所有观测值的不同计数。观测值8将服从summarize(count = n()) function。然后,这将计算8的数量加上x中其他唯一值的数量。

总而言之,这将创建一个新的“计数”列,其中所有值均来自不同的计数,除了一个例外,其值来自“正常”计数。

1 个答案:

答案 0 :(得分:1)

面向未来读者的更新:

如果您要结合使用非重复计数和“正常”计数功能,则将对x中的所有观察值进行明显计数,但观察值8除外,后者将服从“常规”计数”计数:

summarize(count = n_distinct(x[x != 8]) + sum(x == 8))

这将计算8的数量加上x中其他唯一值的数量。

但是,如果您想使用非重复计数功能,同时添加一个根本不应该计数的异常(例如8),请编写以下代码:

n_distinct(x[x != 8])

或者这个

... %>% filter(x != 8) %>% summarize...