Counting the number of elements with the values of x in a vector

I have a vector of numbers:

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

How can I have R count the number of times a value x appears in the vector?


You can just use 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 

Then you can subset it:

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

Or convert it into a data.frame if you're more comfortable working with that:

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

The most direct way is sum(numbers == x) .

numbers == x creates a logical vector which is TRUE at every location that x occurs, and when sum ing, the logical vector is coerced to numeric which converts TRUE to 1 and FALSE to 0.

However, note that for floating point numbers it's better to use something like: sum(abs(numbers - x) < 1e-6) .


I would probably do something like this

length(which(numbers==x))

But really, a better way is

table(numbers)
链接地址: http://www.djcxy.com/p/24864.html

上一篇: 在R中创建重复函数调用结果的向量

下一篇: 计算矢量中x的值的元素数量