Conductor
group_by() % summarise(across(c(変数1,変数2), .fns = list(“mean” = ~ mean(.x), “range lo” = ~ mean(.x) – 2*sd(.x), “range hi” = ~ mean(.x) + 2sd(.x)))) ← この形で覚えてしまう。
Visualizer
今回はスキップ。目的に応じてカラムとして集計する変数を追加していく。
Wrangler
全体像はこんな感じ
# 1.0 BASIC USAGE ----
# * AVERAGE CITY FUEL CONSUMPTION BY VEHICLE CLASS ----
mpg %>% group_by(class) %>% summarise( across(cty, .fns = mean), # .fns = mean で平均値を計算 # .fns = とはfunctionの略 # across() で指定したカラムに対してfunctionを適用 .groups = "drop" # .groups = "drop" でgroup_by()の効果を無効化、つまり通常のテーブルに戻す。 # グループ化されたままにする場合(group_by()の効果を残す場合)、".groups = "keep""を指定。 # または、group_by()の代わりにgroup_by()の代わりにungroup()を使う。 # .group_by()を残してしまうと、その後の処理でエラーが発生することがある。 # group_by()の効果が残っていると、group_by()で指定したカラム以外のカラムを使うとエラーが発生する。 )
# * AVERAGE & STDEV CITY FUEL CONSUMPTION BY VEHICLE CLASS
mpg %>% group_by(class) %>% summarise( across(cty, .fns = list(mean = mean, stdev = sd)), .groups = "drop" # acrossはlist()で複数のfunctionを指定できる。(複数列の設定) # 列名はmeanとstdevになる。接頭辞のctyは自動で各列に付与される。 )
# * AVERAGE & STDEV CITY + HWY FUEL CONSUMPTION BY VEHICLE CLASS
mpg %>% group_by(class) %>% summarise( across(c(cty, hwy), .fns = list(mean = mean, stdev = sd)), .groups = "drop" # 複数変数も指定可能 )
# 2.0 ADVANCED ----
# * CUSTOMIZE NAMING SCHEME ----
mpg %>% group_by(class) %>% summarise( across( c(cty, hwy), .fns = list(mean = mean, stdev = sd), .names = "{.fn} {.col} Consumption" # .names = "{.fn} {.col} Consumption" で列名をカスタマイズ # Consumptionは固定 # .fn はfunction名、.col は列名 # .fnsはlist()で指定する。複数のfunctionを指定できる。 # この場合、列名は "mean cty Consumption" と "stdev cty Consumption" になる。 ), .groups = "drop" ) %>% rename_with(.fn = str_to_upper) # rename_with() で列名を大文字に変換 # str_to_upper() で大文字に変換 # rename_with(.fn = str_to_upper) で全ての列名を大文字に変換 # .fn はfunction名。functionとは、列名を変更するfunctionを指定する。
# * COMPLEX FUNCTIONS ----
mpg %>% group_by(class) %>% summarise( across( c(cty, hwy), .fns = list( "mean" = ~ mean(.x), # ~ はfunction(無名関数)の略. .x は列名。ここではc()で指定した列名。 "range lo" = ~ (mean(.x) - 2*sd(.x)), # 平均値から2標準偏差を引いた値(下限)。全データの95%がこの範囲に収まる。 "range hi" = ~ (mean(.x) + 2*sd(.x)) # 平均値から2標準偏差を足した値(上限)。全データの95%がこの範囲に収まる。 ), .names = "{.fn} {.col}" # 列名をカスタマイズ ), .groups = "drop" ) %>% rename_with(.fn = str_to_upper)
Raw data / Wrangling / Feature Engineering(抽出~整形)
- Source: https://fueleconomy.gov/
- SQL読込: –
- CSV読込: –
- API読込 : 〇(mpg)
- rmarkdown:render()読込:- (.rmdのファイルをtemlate保存しておく必要あり)
Extractor
元々のデータフレーム(mpg)
Wrangler
Loading
# Script on Rstudio
# Tips: 読み込み先のファイルは「記載するpath名の始まり」からWorking Directoryとして設定する必要性がある。
mpg
Wrangler
視える化に合わせて編集
特になし。
メモ
- 行 (row) :レコード、Observation
- 列 (column):特徴量、変数、次元数、次元の削減(Dimensionality Reduction): 高次元データを少ない次元に圧縮し、モデルの効率を上げるための手法。.xは列を指定している。
- 値:data point、Feature
- Wide format:クロス集計表(横持ちデータ)、Long format:縦持ちデータ
- 情報ソースがWEBサイト(HTMLやCSS)の場合にはどこから抽出するか、が問われるので、HTMLやCSSの知識が必要(スクレイピングを実施するにせよ)。
- レンダリング(rendering)とはコンピュータがデータを処理して画像や映像、テキストなどを表示させる技術。
- .fn(単数)と.fns(複数)はfunctionの略で無名関数。~ (tilde:チルダ) も無名関数。
参考リンク
- Script事例:https://www.business-science.io/
- Rデータの種類:https://ebreha.com/__trashed/