用R计算范围内的向量值的数量

时间:2010-09-29 01:17:13

标签: r vector comparison

在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的值的数量?

3 个答案:

答案 0 :(得分:40)

尝试

> sum(v > 2 & v < 5)

答案 1 :(得分:4)

在TeachingDemos软件包中还有%&lt;%和%&lt; =%比较运算符允许您这样做:

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

给出与以下相同的结果:

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

哪个更好可能更多的是个人偏好。

答案 2 :(得分:2)

使用哪个:

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