在一个向量中计算值为x的元素的数量

105 浏览
0 Comments

在一个向量中计算值为x的元素的数量

我有一个数字向量:

numbers <- c(4,23,4,23,5,43,54,56,657,67,67,435,
         453,435,324,34,456,56,567,65,34,435)

怎样让 R 计算数值 x 在向量中出现的次数?

admin 更改状态以发布 2023年5月21日
0
0 Comments

最直接的方法是使用sum(numbers == x)

numbers == x会创建一个逻辑向量,在x出现的每个位置为TRUE,当进行sum运算时,逻辑向量被强制转换为数字,TRUE转换为1,FALSE转换为0。

但是,请注意,对于浮点数,最好使用类似于sum(abs(numbers - x) < 1e-6)这样的方式。

0
0 Comments

你可以直接使用 table()

> a <- table(numbers)
> a
numbers
  4   5  23  34  43  54  56  65  67 324 435 453 456 567 657 
  2   1   2   2   1   1   2   1   2   1   3   1   1   1   1 

然后你可以对它进行子集操作:

> a[names(a)==435]
435 
  3

或者如果你更习惯使用 data.frame,可以将它转换成 data.frame:

> as.data.frame(table(numbers))
   numbers Freq
1        4    2
2        5    1
3       23    2
4       34    2
...

0