Подтвердить что ты не робот

Считать количество векторных значений в диапазоне с R

В R, если вы проверите условие на вектор вместо скаляра, он вернет вектор, содержащий результат сравнения для каждого значения в векторе. Например...

> v <- c(1,2,3,4,5)
> v > 2
[1] FALSE FALSE  TRUE  TRUE  TRUE

Таким образом, я могу определить количество элементов в векторе, которые выше или ниже определенного числа, например.

> sum(v > 2)
[1] 3
> sum(v < 2)
[1] 1

Кто-нибудь знает, как я могу определить количество значений в заданном диапазоне? Например, как бы определить количество значений больше 2, но меньше 5?

4b9b3361

Ответ 1

Try

> sum(v > 2 & v < 5)

Ответ 2

В пакете TeachingDemos также есть операторы сравнения% <% и% < =%, которые позволяют сделать это следующим образом:

sum( 2 %<% x %<% 5 )
sum( 2 %<=% x %<=% 5 )

который дает те же результаты, что и:

sum( 2 < x & x < 5 )
sum( 2 <= x & x <= 5 )

Что лучше, вероятно, больше зависит от личных предпочтений.

Ответ 3

Использование, которое:

 set.seed(1)
 x <- sample(10, 50, replace = TRUE)
 length(which(x > 3 & x < 5))
 # [1]  6