r - 类别数不等于特定类别数

标签 r dplyr summarize

我有一个包含许多分类列的数据框。 我想计算不等于“bla”的不同类别的数量。 例如:

> d1
# A tibble: 5 x 2
    x      y    
  <chr>  <chr>
1 yellow A    
2 green  A    
3 green  bla  
4 blue   B    
5 bla    bla  

如何修改 dplyr 的

d1 %>% summarise_all(n_distinct)

排除类别“bla”?在本例中,x 列的答案应为 3,y 列的答案应为 2。

最佳答案

我们可以使用filter_all过滤所有列中的行,然后使用n_distinct来获取唯一值的长度。

library(dplyr)

d1 %>% 
   filter_all(all_vars(. != "bla")) %>% 
    summarise_all(n_distinct)

#  x y
#1 3 2

关于r - 类别数不等于特定类别数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50445231/

相关文章:

r - 在 R 中的距离矩阵中找到 x 最小值

r - 汇总到矢量输出

r垃圾回收参数解释

r - 在 ggplot 中按因子生成多个图

R向量计数每个日期范围内的日期数

R:read_excel 将日期读取为数字

r - 将多列粘贴到一列中,但删除任何 NA、空白或重复值

r - 使用 dplyr 跨列进行条件求和

csv - Unix,对 file.csv 中的行进行分组并计算列的总和值

r - ipython notebook R cell magic作为python函数