メインコンテンツにスキップ
モジュール 3 · レッスン 2 / 2コース内の 6/10~15 min
モジュールのレッスン (2/2)

探索と集約

R は主に統計環境として作成されたため、ベクトルまたはテーブル内のデータの分布を分析、要約、理解するための多くの組み込み関数を提供します。

基本的な統計関数

R を使用すると、数値ベクトルの中心と広がりの主な尺度を簡単に計算できます。

  • mean(x): 要素の算術平均を計算します。
  • median(x): 中央値 (中央値) を計算します。
  • sd(x): 標準偏差 (データの広がりの尺度) を計算します。
  • min(x) および max(x): それぞれ最小値と最大値を返します。
R
values <- c(10, 12, 15, 18, 20, 22)

avg <- mean(values)
dispersion <- sd(values)

cat("Mean:", avg, "- Std Dev:", round(dispersion, 2), "\n")

欠落データの処理 (NA)

現実の世界では、データセットには欠損値が含まれることが多く、R では特別なエンティティ NA (使用不可) によって表されます。

単一の NA を含むベクトルの平均またはその他の集計を計算しようとすると、R は結果として NA を返します。欠損値を無視するには、論理引数 na.rm = TRUE (NA 削除) を渡す必要があります。

R
temperatures <- c(18, 21, NA, 24, 19)

# This will return NA
print(mean(temperatures))

# This will ignore the NA and perform the calculation on valid values
print(mean(temperatures, na.rm = TRUE))

summary() によるグローバル サマリー

summary() 関数は、ベクトルまたはデータ フレーム全体の完全な統計概要を提供し、最小値、第 1 四分位数、中央値、平均値、第 3 四分位数、最大値を表示する強力なツールです。

R
prices <- c(5, 10, 15, 20, 100)
print(summary(prices))

aggregate を使用したデータの集約

データ フレームを操作する場合、特定のグループまたはカテゴリの概要統計 (平均や合計など) を計算するのが一般的です。 R の aggregate() 関数は、このプロセスを簡素化します。

R
df <- data.frame(
  department = c("HR", "IT", "HR", "IT"),
  salary = c(3000, 4500, 3200, 4800)
)

# Calcola la media dei salari per dipartimento
avg_salaries <- aggregate(salary ~ department, data = df, FUN = mean)
print(avg_salaries)

構文 salary ~ department は、「department 変数に基づいて salary 変数を分析する」ことを意味します。 FUN = mean 引数は、各グループの算術平均を計算することを指定します。

subset による高度なフィルタリング

subset() 関数は、複雑な角括弧の使用を避けて、データ フレームから行と列のサブセットを抽出する直感的かつ洗練された方法を提供します。

R
employees <- data.frame(
  name = c("Alice", "Bob", "Charlie"),
  age = c(25, 34, 29),
  active = c(TRUE, FALSE, TRUE)
)

# Filtra solo i dipendenti attivi con età superiore a 28
active_employees <- subset(employees, active == TRUE & age > 28)

自分で試してみてください

運動#r.m3.l2.e1
試行回数: 0読み込み中…

ベクトル温度を指定して平均を計算し、それを変数mean_tempに保存します。次に、中央値を計算し、median_temp に保存します。

エディターを読み込み中…
ヒントを表示

米国平均温度 <- 平均(温度) e 中央値_温度 <- 中央値(温度)

3 回の試行後に解決策が利用可能になります

運動#r.m3.l2.e2
試行回数: 0読み込み中…

NA 値を含むスコア ベクトルを指定して、欠損値を除いたベクトルの標準偏差を計算し、それを sd_scores 変数に保存します。

エディターを読み込み中…
ヒントを表示

na.rm = TRUE 引数を指定して sd() 関数を使用します: sd_scores <- sd(scores, na.rm = TRUE)

3 回の試行後に解決策が利用可能になります

運動#r.m3.l2.e3
試行回数: 0読み込み中…

データ フレーム df を指定して、値列の統計概要を取得し、それを stats_summary 変数に保存します。

エディターを読み込み中…
ヒントを表示

$ 演算子を使用して列を抽出し、それを summary() に渡します: stats_summary <- summary(df$values)

3 回の試行後に解決策が利用可能になります

運動#r.m3.l2.e4
試行回数: 0読み込み中…

データ フレームの売上を考慮して、aggregate() 関数を使用して、region 列でグループ化された収益列の合計 (FUN = sum) を計算します。結果をregion_sales変数に保存します。

エディターを読み込み中…
ヒントを表示

使用:region_sales <- 集計(収益 ~ 地域、データ = 売上、FUN = 合計)

3 回の試行後に解決策が利用可能になります

運動#r.m3.l2.e5
試行回数: 0読み込み中…

データ フレーム製品を指定して、subset() 関数を使用して、「エレクトロニクス」カテゴリ (category == 'エレクトロニクス') に属し、価格が 100 より大きい (価格 > 100) の製品のみをフィルターします。結果をasty_electronics 変数に保存します。

エディターを読み込み中…
ヒントを表示

使用: 高価なエレクトロニクス <- サブセット(製品、カテゴリ == 'エレクトロニクス' & 価格 > 100)

3 回の試行後に解決策が利用可能になります