web-dev-qa-db-ja.com

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未満の値の数をどのように決定しますか?

31
Daniel Standage

試して

> sum(v > 2 & v < 5)
41
stevendesu

TeachingDemosパッケージには、%<%および%<=%比較演算子もあり、次のようなことができます。

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

次と同じ結果が得られます。

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

どちらが良いかは、おそらく個人的な好みの問題です。

4
Greg Snow

使用するもの:

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