条件を満たすデータの個数をカウントする
Text Update: 01/21, 2020 (JST)

 Rで条件を満たすデータの個数を数える方法はいたってシンプルです。

ベクトルデータの場合

 例えば任意に発生させた\(1\)から\(100\)までの\(100\)個の整数があるとします。

set.seed(1)
x <- round(runif(100, 1, 100))
x
##   [1] 27 38 58 91 21 90 95 66 63  7 21 18 69 39 77 50 72 99 39 78 94 22 66 13 27
##  [26] 39  2 39 87 35 49 60 50 19 83 67 80 12 73 42 82 65 79 56 53 79  3 48 73 70
##  [51] 48 86 44 25  8 11 32 52 67 41 91 30 46 34 65 27 48 77  9 88 35 84 35 34 48
##  [76] 89 87 40 78 96 44 72 41 33 76 21 71 13 25 15 25  7 65 88 78 80 46 42 81 61

 この\(100\)個の整数に\(90\)を超える数値がいくつ含まれているかをカウントするには、条件式とsum関数を用いて以下のように指定するだけです。

sum(x > 90)
## [1] 6

 Rでは条件式を満たす場合はTRUE満たさない場合はFALSEを返します。

x > 90
##   [1] FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
##  [13] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE
##  [25] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [37] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [49] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [61]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [73] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
##  [85] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [97] FALSE FALSE FALSE FALSE

 TRUE1FALSE0と等価ですから

as.integer(x > 90)
##   [1] 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
##  [38] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
##  [75] 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

 合算することにより条件式を満たしているデータの個数を求められます。

sum(as.integer(x > 90))
## [1] 6

 ベクトル演算が可能なRならではの方法です。

 
Enjoy!  

本blogに対するアドバイス、ご指摘等は データ分析勉強会 または GitHub まで。

CC BY-NC-SA 4.0 , Sampo Suzuki