ベクトル化された論理 パート1
CoddyのRジャーニー「基礎」セクションの一部 — レッスン 20/78。
Rには、AND演算子とOR演算子の2つのバージョンがあります。これまでに、単一の値に対して機能する && と || について学びました。次は、ベクトル化された対応する演算子である & と |(単一の記号)について見ていきましょう。
主な違いは、複数の値を扱う際に & と | が値を要素ごとに比較することです:
a <- c(TRUE, TRUE, FALSE, FALSE)
b <- c(TRUE, FALSE, TRUE, FALSE)
a & b # TRUE FALSE FALSE FALSE
a | b # TRUE TRUE TRUE FALSE各位置は独立して比較されます。最初の位置では、a と b の両方が TRUE なので、a & b は TRUE を返します。2番目の位置では、a は TRUE ですが b は FALSE なので、a & b は FALSE を返します。
これは、比較演算子と組み合わせることで強力になります:
scores <- c(85, 42, 91, 67, 55)
# どのスコアが50から80の間にあるかを確認する
scores >= 50 & scores <= 80 # FALSE FALSE FALSE TRUE TRUE結果は、どの要素が両方の条件を満たしているかを示す論理値のベクトルになります。この要素ごとの動作は、Rにおけるデータのフィルタリングや分析に不可欠です。
チャレンジ
簡単ベクトル化された AND (&) および OR (|) 演算子を使用して、ベクトルに対して要素ごとの比較を実行します。
以下のベクトルが提供されています:
temperatures <- c(18, 25, 32, 15, 28, 35, 22)
humidity <- c(45, 80, 60, 30, 75, 85, 50)ベクトル化された論理演算子を使用して、以下の論理ベクトルを作成してください:
- 各温度が 20 以上 かつ 30 以下である場合に
TRUEを格納する、comfortable_tempという名前のベクトルを作成します。 - 各湿度の値が 70 より大きい場合に
TRUEを格納する、high_humidityという名前のベクトルを作成します。 - 温度が 20 から 30 の間(両端を含む) かつ 湿度が 60 以下である各日の場合に
TRUEを格納する、pleasant_dayという名前のベクトルを作成します。 - 温度が 30 より大きい または 湿度が 80 より大きい各日の場合に
TRUEを格納する、extreme_weatherという名前のベクトルを作成します。 - 温度が 18 未満 または (温度が 30 より大きく かつ 湿度が 70 より大きい)各日の場合に
TRUEを格納する、stay_insideという名前のベクトルを作成します。
print() 関数を使用して、comfortable_temp、high_humidity、pleasant_day、extreme_weather、および stay_inside をこの正確な順序で表示してください。
チートシート
Rには、AND演算子とOR演算子の2つのバージョンがあります。
&&と||は単一の値を扱います&と|は、値を要素ごとに比較するベクトル化された演算子です
ベクトル化された演算子 & と | は、各位置を独立して比較します:
a <- c(TRUE, TRUE, FALSE, FALSE)
b <- c(TRUE, FALSE, TRUE, FALSE)
a & b # TRUE FALSE FALSE FALSE
a | b # TRUE TRUE TRUE FALSEベクトル化された演算子は、比較演算子と組み合わせると強力です:
scores <- c(85, 42, 91, 67, 55)
# どのスコアが50から80の間にあるかを確認する
scores >= 50 & scores <= 80 # FALSE FALSE FALSE TRUE TRUE結果は、どの要素が条件を満たしているかを示す論理値のベクトルになります。
自分で試してみよう
# 提供されたベクトル
temperatures <- c(18, 25, 32, 15, 28, 35, 22)
humidity <- c(45, 80, 60, 30, 75, 85, 50)
# TODO: 以下にコードを記述してください
# 1. comfortable_temp を作成: temp >= 20 かつ temp <= 30 の場合に TRUE
# 2. high_humidity を作成: humidity > 70 の場合に TRUE
# 3. pleasant_day を作成: temp が 20-30 かつ humidity <= 60 の場合に TRUE
# 4. extreme_weather を作成: temp > 30 または humidity > 80 の場合に TRUE
# 5. stay_inside を作成: temp < 18 または (temp > 30 かつ humidity > 70) の場合に TRUE
# 結果を出力
print(comfortable_temp)
print(high_humidity)
print(pleasant_day)
print(extreme_weather)
print(stay_inside)このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。