19

次のベクトルがある場合:

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

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

私は取得したい:

2

結果として

4

2 に答える 2

34

使用lengthまたはsum

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

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

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

最初のアプローチでは、カウントする前にインデックス作成とサブセット化が必要になるため、2番目のアプローチの方が最初のアプローチよりも高速であるとほぼ確信しています。

于 2013-03-08T16:33:49.147 に答える