次のベクトルがある場合:
x
[1] 1 5 8 9 1 0 15 15
10 より大きい要素の数を知りたいのですが、ループを使用せずに続行するにはどうすればよいですか?
私は取得したい:
2
結果として
使用length
またはsum
:
> length(x[x > 10])
[1] 2
> sum(x > 10)
[1] 2
最初のアプローチでは、条件に一致する値をサブセット化するベクトルを作成してから、ベクトルのを取得しlength
ます。
TRUE
2番目のアプローチでは、各値が条件に一致するか( )、一致しないか()を示す論理ベクトルを作成するだけですFALSE
。TRUE
とFALSE
は「1」と「0」に等しいので、簡単sum
に答えを得ることができます。
最初のアプローチでは、カウントする前にインデックス作成とサブセット化が必要になるため、2番目のアプローチの方が最初のアプローチよりも高速であるとほぼ確信しています。