2016年12月21日水曜日

論理値

> 5>3
[1] TRUE
> 5==3
[1] FALSE
比較をした結果は論理値となります。5>3 は5が3より大きいといっています。これは正しいので真の値をとります。真の値は TRUE です。Rでは大文字・小文字は厳密に区別されるので、注意してください。偽は FALSE です。
 5==3 は5と3が等しいといっています。これは偽なので、FALSE となります。= は代入、== は比較です。厳密に区別してください。
 以上、以下は >=  と <= を使います。異なるは != です。

> x=c(3,7,2)
> x>4
[1] FALSE  TRUE FALSE
ベクトルに適用しました。

> x=c(3,5,6,3,3,8,8)
> sum(x==3)
[1] 3
> sum(x==8)
[1] 2
論理値に数値演算を適用すると、TRUEは 1、FALSEは 0 として扱われます。ベクトルxのうちの3の個数と8の個数を調べました。

> x=c(3,5,6,3,3,8,8)
> y=(x>5)
> y
[1] FALSE FALSE  TRUE FALSE FALSE  TRUE  TRUE
> y[1]=T
> y
[1]  TRUE FALSE  TRUE FALSE FALSE  TRUE  TRUE
論理値を変数yに代入しました。
 y[1]の値をFALSE から TRUE に変更しました。TRUE は T と省略できます。 FALSE は F です。

> x
[1] 3 5 6 3 3 8 8
> x[c(T,F,T,T,T,F,F)]
[1] 3 6 3 3
ベクトルの添え字([ ]の中)に論理値を指定すると、TRUE のところだけが取り出されます。
この原理を使って、x のうちの 5 より大きいものを取り出すには
> x[x>5]
[1] 6 8 8
とやります。

問題 ベクトル x のうちの 5以上のものの個数と、その合計を求めてください。

0 件のコメント:

コメントを投稿