Подсчет числа элементов со значениями 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 появляется в векторе?

377
задан epo3 4 October 2016 в 01:29
поделиться

4 ответа

Вы можете просто использовать 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, если вам удобнее работая с этим:

> as.data.frame(table(numbers))
   numbers Freq
1        4    2
2        5    1
3       23    2
4       34    2
...
473
ответ дан 22 November 2019 в 23:57
поделиться

вот один быстрый и грязный способ:

x <- 23
length(subset(numbers, numbers==x))
9
ответ дан 22 November 2019 в 23:57
поделиться

Я бы, наверное, сделал что-то вроде этого

length(which(numbers==x))

Но на самом деле, лучший способ -

table(numbers)
55
ответ дан 22 November 2019 в 23:57
поделиться

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 suming, 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).

248
ответ дан 22 November 2019 в 23:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: