首页 > 解决方案 > 在 R 中以特定方式计算出现次数

问题描述

我有一个介于 1 和 10 之间的双数向量。

a<-c(3.5, 1.2, 1, 5, 8, 6.9, 5.3, 1.2)

我必须有一个 10 个类(1 到 10)的数据框,每个类的计数,如果没有出现,它必须呈现为 1。

所以预期的结果是这样的:

> df
    a b
1   1 3
2   2 1
3   3 1
4   4 1
5   5 2
6   6 1
7   7 1
8   8 1
9   9 1
10 10 1

标签: r

解决方案


使用基数 R 的一种方法,转换a为整数,然后factor使用级别 1-10,使用table和使用pmax将 0 计数替换为 1 来计算它们的出现次数。

stack(pmax(table(factor(as.integer(a), levels = 1:10)), 1))[2:1]

#   ind values
#1    1      3
#2    2      1
#3    3      1
#4    4      1
#5    5      2
#6    6      1
#7    7      1
#8    8      1
#9    9      1
#10  10      1

推荐阅读