次のベクターがある場合:
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
を取得します。
2番目のアプローチでは、各値が条件に一致するか(TRUE
)、一致しないか(FALSE
)を示す論理ベクトルを作成するだけです。 TRUE
とFALSE
は「1」と「0」に等しいため、sum
を使用して答えを得ることができます。
最初のアプローチは、カウントする前にインデックス付けとサブセット化が必要であるため、2番目のアプローチが最初のアプローチよりも高速であることはほぼ確実です。