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未満の値の数をどのように決定しますか?
試して
> sum(v > 2 & v < 5)
TeachingDemosパッケージには、%<%および%<=%比較演算子もあり、次のようなことができます。
sum( 2 %<% x %<% 5 )
sum( 2 %<=% x %<=% 5 )
次と同じ結果が得られます。
sum( 2 < x & x < 5 )
sum( 2 <= x & x <= 5 )
どちらが良いかは、おそらく個人的な好みの問題です。
使用するもの:
set.seed(1)
x <- sample(10, 50, replace = TRUE)
length(which(x > 3 & x < 5))
# [1] 6