ここではR言語の主要なデータ操作関数について説明します。特に、factor, cut, recode, summary, describe, table, そして levels に焦点を当てます。
ファクター
ファクターはカテゴリカルなデータを表すために使用されます。以下がその基本的な構文です。
factor(x = character(), levels, labels = levels,
exclude = NA, ordered = is.ordered(x), nmax = NA)
# 有順序ファクターを作成する例
ordered_vector <- factor(c("低", "中", "高"), levels = c("低", "中", "高"), ordered = TRUE)
ファクターチェックや変換も可能です。
is.factor(x) # xがファクターかどうかを確認
is.ordered(x) # xが有順序ファクターかどうかを確認
as.factor(x) # ベクトルをファクターに変換
as.ordered(x) # ベクトルを有順序ファクターに変換
addNA(x, ifany = FALSE) # ファクターにNAレベルを追加
区間分割 (cut)
数値データを区間に分割し、カテゴリカルなデータに変換します。
cut(x, breaks, labels = NULL, include.lowest = FALSE, right = TRUE, dig.lab = 3, ordered_result = FALSE)
# 例: 正規分布からのランダムサンプルを区切る
z <- rnorm(10000)
result <- cut(z, breaks = -6:6)
table(result)
あるいは、特定の年齢層に分ける場合:
data$age_group <- cut(data$age, breaks = c(-Inf, 20, 40, 60, Inf),
labels = c("20歳未満", "20代~39歳", "40代~59歳", "60歳以上"))
値の置き換え (recode)
既存の値を新しい値に置き換えます。
recode(.x, ..., .default = NULL, .missing = NULL)
# 例: 性別をテキストで表現
data$gender <- recode(data$gender, "1" = "男性", "2" = "女性")
# カテゴリーを再定義
data$group <- recode(data$group, "1" = "グループA", "2" = "グループB", "3" = "その他")
要約統計 (summary)
データフレームやベクトルの要約情報を提供します。
summary(object)
# 例:
summary(USArrests)
結果は最小値、最大値、四分位数、平均などです。
詳細要約 (describe)
より詳細な統計情報が必要な場合に使用します。
describe(x, na.rm = TRUE, skew = TRUE, ranges = TRUE, trim = 0.1, type = 3, check = TRUE)
# 例:
describe(USArrests)
出力には中央値、歪度、尖度、範囲などが含まれます。
頻度表 (table)
クロス集計や頻度表を作成します。
table(..., exclude = if(useNA == "no") c(NA, NaN), useNA = c("no", "ifany", "always"))
# 例:
freq_table <- table(data$gender, data$age_group)
as.data.frame(freq_table)
レベル操作 (levels)
ファクターのレベルを取得・設定します。
levels(x) <- value
# 例:
x <- factor(c("赤", "青", "緑"))
levels(x) <- c("Red", "Blue", "Green")
さらに、複数のレベルを結合することも可能です。
z <- factor(c("リンゴ", "サラダ", "オレンジ"), levels = c("リンゴ", "サラダ", "オレンジ"))
levels(z) <- c("果物", "野菜", "果物")
これにより、元のレベルが新しいカテゴリにマッピングされます。