web-dev-qa-db-ja.com

ループを使用しない場合のベクトルの要素数がxより大きい

次のベクターがある場合:

x
[1]  1  5  8  9  1  0 15 15

10より大きい要素の数を知りたいのですが、ループを使用せずに続行するにはどうすればよいですか?

入手したい:

2

結果として

14
Henri

lengthまたはsumを使用:

> length(x[x > 10])
[1] 2
> sum(x > 10)
[1] 2

最初のアプローチでは、条件に一致する値をサブセット化するベクトルを作成し、そのベクトルのlengthを取得します。

2番目のアプローチでは、各値が条件に一致するか(TRUE)、一致しないか(FALSE)を示す論理ベクトルを作成するだけです。 TRUEFALSEは「1」と「0」に等しいため、sumを使用して答えを得ることができます。

最初のアプローチは、カウントする前にインデックス付けとサブセット化が必要であるため、2番目のアプローチが最初のアプローチよりも高速であることはほぼ確実です。

28