按数据框中因子列的级别计算字符列中的元素数

use*_*784 0 r

我是 R 的初学者。我有一个数据框,其中有两个因子列。一栏是公司栏,第二栏是产品栏。产品列中有几个缺失值,因此我想计算每个公司(或公司变量的每个级别)的产品列中的值数。我在 plyr 包中尝试了 table 和 count 函数,但它们似乎只适用于数字变量。请帮忙!假设数据框如下所示:

df <- data.frame(company= c("A", "B", "C", "D", "A", "B", "C", "C", "D", "D"), product = c(1, 1, 2, 3, 4, 3, 3, NA, NA, NA))
Run Code Online (Sandbox Code Playgroud)

所以我正在寻找的输出是 -

A 2 B 2 C 3 D 2

提前致谢!!

Dan*_*son 5

dplyr 解决方案。

df %>% 
    filter(!is.na(product)) %>% 
    group_by(company) %>% 
    count()

# A tibble: 4 × 2
    comp     n
  <fctr> <int>
1      A     2
2      B     2
3      C     3
4      D     1
Run Code Online (Sandbox Code Playgroud)