Slide 1

Slide 1 text

1 2023.06.10 Tokyo.R #106 データフレームを操作

Slide 2

Slide 2 text

Rでデータを加工してレポート

Slide 3

Slide 3 text

Tidyverse データの整形がはかどるライブラリ

Slide 4

Slide 4 text

← 代入

Slide 5

Slide 5 text

c() ベクトルを作る ベクトルの1番目の要素x[1]の値は0.3

Slide 6

Slide 6 text

▷ パイプライン x ^ 2 %>% sum %>% sqrt という書き方もあります。

Slide 7

Slide 7 text

tibble() データフレームを作る

Slide 8

Slide 8 text

この資料の表記ルール データフレームやCSVファイルのようなテーブル形状のデータを右図のように表記します。 =

Slide 9

Slide 9 text

架空の業務システム order_no 1 client AAA 1 abcd 2300 100 seq_no unit_price item qty 2 efg 1500 90 (new)

Slide 10

Slide 10 text

order_no 1 client AAA orders (注文ヘッダー) 1 abcd 2300 100 seq_no unit_price item qty 2 efg 1500 90 (new)

Slide 11

Slide 11 text

1 abcd 2300 100 seq_no unit_price item qty 2 efg 1500 90 (new) details (注文明細) order_no 1 client AAA items (商品)

Slide 12

Slide 12 text

read_csv() ファイルを読み込む データフレーム(tibble)として読み込まれます。

Slide 13

Slide 13 text

行を抽出して列を選択する filter() とselect() ▷

Slide 14

Slide 14 text

inner_join() 結合する details orders × =

Slide 15

Slide 15 text

さらに結合する items × =

Slide 16

Slide 16 text

mutate() 列を追加する

Slide 17

Slide 17 text

結果をdに代入 d

Slide 18

Slide 18 text

在庫タイプ別の合計金額 ▷ d

Slide 19

Slide 19 text

注文番号ごとの合計金額 ▷ d

Slide 20

Slide 20 text

注文番号ごとの合計金額をsに代入 s ▷ d 注文番号ごとの合計金額

Slide 21

Slide 21 text

dとsを結合

Slide 22

Slide 22 text

注文番号ごとの割合

Slide 23

Slide 23 text

注文番号ごとの割合 nestとmapを使って書く例 中間変数無しで一気通貫に書ける

Slide 24

Slide 24 text

nestとmapの処理の流れ(1)

Slide 25

Slide 25 text

nestとmapの処理の流れ(2)

Slide 26

Slide 26 text

nestとmapの処理の流れ(3)

Slide 27

Slide 27 text

nestとmapの処理の流れ(4)

Slide 28

Slide 28 text

nestとmapの処理の流れ(5)

Slide 29

Slide 29 text

まとめ Tidyverse 便利なライブラリ ← 代入 C() ベクトル ▷ パイプライン tibble() データフレーム read_csv() 読み込む filter() 抽出 select() 選択 inner_join() 結合 mutate() 列を追加 group_by() グループ化 summarise() 集計 group_nest() 入れ子にする map_dbl() リストに関数適用 ~ . ラムダ式 unnest() 入れ子を解除