R 相当于 SQL SELECT COUNT(*) ... GROUP BY

Esc*_*her 4 group-by r count

我试图找到如何计算向量中每种类型的整数的数量。例如,有多少个 1、2 和 3(没有硬编码 == 1,2,3):

test_vec = c(1,2,3,1,2,1,2,1,1,1,2,1,3,1,2,3,2,1,2,1,3)
Run Code Online (Sandbox Code Playgroud)

并且,如何识别我向向量中添加了一些 4 并对其进行计数?

test_vec = c(test_vec,4,4,4)
Run Code Online (Sandbox Code Playgroud)

我可以用range()循环来做到这一点,但想知道是否有通用的矢量化解决方案?

编辑:与此不同的问题,因为该问题不询问一般table情况(尽管答案明智地表明了这一点),而是检查硬编码的相等性sum(test_vec==x)

Sea*_*ite 5

aggregate在这种情况下非常方便

> aggregate(data.frame(count = test_vec), list(value = test_vec), length)

  value count
1     1    10
2     2     7
3     3     4
Run Code Online (Sandbox Code Playgroud)