Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

21

Share

Download to read offline

R入門(dplyrでデータ加工)-TokyoR42

Download to read offline

R入門(dplyrでデータ加工)-TokyoR42

Related Books

Free with a 30 day trial from Scribd

See all

R入門(dplyrでデータ加工)-TokyoR42

  1. 1. R入門(dplyrでデータ加工) 第42回R勉強会@東京(#TokyoR) @gepuro
  2. 2. 自己紹介 早川 敦士 @gepuro 電気通信大学大学院 修士2年 専門:信頼性工学 言語:R言語、Python 特技:花火打ち揚げ
  3. 3. ハッカーズバーでバイトしてます http://hackersbar.net/
  4. 4. 告知 2014年12月6日に Japan.Rを開催します。
  5. 5. 分析ツール ● R○ 無料,非エンジニアでも扱いやすい言語 ● Python ○ Numpy, Scipy, Scikit-learnなどの科学計算ライブラリ が充実。エンジニアに親しまれやすい ● Julia ○ 2012年登場,玄人向け, 開発段階 ● Excel ○ ほとんどの人が使える。ピボットテーブル便利 ● など Japan.Rでパネルディスカッションを 予定してます。
  6. 6. R言語(あーるげんご)はオープンソース・ フリーソフトウェアの統計解析向けの プログラミング言語及びその開発実行環境 である。 wikipediaより
  7. 7. R言語の使い方に困ったら ● Rjpwiki ○ http://www.okada.jp.org/RWiki/ ● RPubs ○ https://rpubs.com/ ● seekR ○ http://seekr.jp/ ● R-tips ○ http://cse.naro.affrc.go.jp/takezawa/r-tips/r.html ● JIN’S Page ○ http://www1.doshisha.ac.jp/~mjin/R/
  8. 8. 分析作業の流れ データベース データ加工 モデリング・可視化
  9. 9. 分析作業の流れ データ取得 SQL クローリング データ加工 モデリング・可視化
  10. 10. 分析作業の流れ データベース データ加工 モデリング・可視化 マージ 型変換 集計 縦横変換 データフレーム
  11. 11. 分析作業の流れ データベース データ加工 散布図 決定木分析 重回帰分析ヒストグラム モデリング・可視化
  12. 12. 分析作業の流れ 今日はここを扱う データベース データ加工 モデリング・可視化 マージ 型変換 集計 縦横変換 データフレーム
  13. 13. 変数 > hako <- 1 > hako [1] 1 > hako * 2 [1] 2
  14. 14. 配列 > hakos <- c(1,2,3) > hakos [1] 1 2 3 > hakos + hakos [1] 2 4 6 > hakos * 10 [1] 10 20 30
  15. 15. 配列その2 > hakos [1] 1 2 3 > hakos[1] [1] 1 > hakos[2] [1] 2
  16. 16. for for(i in 1:10){ print(i) }
  17. 17. if a <- 2 if(a %% 2 == 0){ print("偶数") }else{ print("奇数") }
  18. 18. データフレーム > df <- data.frame(a=1:3, b=4:6) > df a b 1 1 4 2 2 5 3 3 6
  19. 19. データフレームその2 > df$c <- df$a + df$b > df a b c 1 1 4 5 2 2 5 7 3 3 6 9
  20. 20. データフレームその3 > df a b c 1 1 4 5 2 2 5 7 3 3 6 9 > df[1,] a b c 1 1 4 5 > df[,1] [1] 1 2 3 行にアクセス 列にアクセス
  21. 21. データ読み込み 通常の方法 > train <- read.csv("data/train.csv") 高速読み込み > library(data.table) > train <- fread("data/train.csv")
  22. 22. データの集計 データ処理のパッケージを読み込み > library(dplyr) サンプルデータの読み込み > data(iris)
  23. 23. dplyrで集計 > iris %>% + group_by(Species) %>% + summarise(SLM= mean(Sepal.Length)) Source: local data frame [3 x 2] Species SLM 1 setosa 5.006 2 versicolor 5.936 3 virginica 6.588
  24. 24. irisというデータセットを利用する > iris %>% + group_by(Species) %>% + summarise(SLM= mean(Sepal.Length)) Source: local data frame [3 x 2] Species SLM 1 setosa 5.006 2 versicolor 5.936 3 virginica 6.588
  25. 25. 左から来たものを右へ受け流す > iris %>% + group_by(Species) %>% + summarise(SLM= mean(Sepal.Length)) Source: local data frame [3 x 2] Species SLM 1 setosa 5.006 2 versicolor 5.936 3 virginica 6.588
  26. 26. Speciesという列ごとに処理する > iris %>% + group_by(Species) %>% + summarise(SLM= mean(Sepal.Length)) Source: local data frame [3 x 2] Species SLM 1 setosa 5.006 2 versicolor 5.936 3 virginica 6.588
  27. 27. 集計する > iris %>% + group_by(Species) %>% + summarise(SLM= mean(Sepal.Length)) Source: local data frame [3 x 2] Species SLM 1 setosa 5.006 2 versicolor 5.936 3 virginica 6.588
  28. 28. dplyrで集計 パターン2 > iris %>% + mutate(Sepal.LW = Sepal.Length + Sepal.Width) %>% + select(Sepal.Length, Sepal.Width, Sepal.LW) %>% + head(., n=3) Sepal.Length Sepal.Width Sepal.LW 1 5.1 3.5 8.6 2 4.9 3.0 7.9 3 4.7 3.2 7.9
  29. 29. 列を追加する > iris %>% + mutate(Sepal.LW = Sepal.Length + Sepal.Width) %>% + select(Sepal.Length, Sepal.Width, Sepal.LW) %>% + head(., n=3) Sepal.Length Sepal.Width Sepal.LW 1 5.1 3.5 8.6 2 4.9 3.0 7.9 3 4.7 3.2 7.9
  30. 30. 列を選択する > iris %>% + mutate(Sepal.LW = Sepal.Length + Sepal.Width) %>% + select(Sepal.Length, Sepal.Width, Sepal.LW) %>% + head(., n=3) Sepal.Length Sepal.Width Sepal.LW 1 5.1 3.5 8.6 2 4.9 3.0 7.9 3 4.7 3.2 7.9
  31. 31. 先頭の3行を表示 > iris %>% + mutate(Sepal.LW = Sepal.Length + Sepal.Width) %>% + select(Sepal.Length, Sepal.Width, Sepal.LW) %>% + head(., n=3) Sepal.Length Sepal.Width Sepal.LW 1 5.1 3.5 8.6 2 4.9 3.0 7.9 3 4.7 3.2 7.9
  32. 32. dplyrで集計 パターン3 > iris %>% + filter(Species=="setosa") %>% + head(., n=3) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa
  33. 33. データを条件で抽出する > iris %>% + filter(Species=="setosa") %>% + head(., n=3) Sepal.Length Sepal.Width Petal.Length Petal. Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa
  34. 34. dplyrで集計 パターン4 > iris %>% + arrange(Sepal.Length) %>% + head(., n=3) Sepal.Length Sepal.Width Petal.Length Petal. Width Species 1 4.3 3.0 1.1 0.1 setosa 2 4.4 2.9 1.4 0.2 setosa 3 4.4 3.0 1.3 0.2 setosa
  35. 35. 並び替え > iris %>% + arrange(Sepal.Length) %>% + head(., n=3) Sepal.Length Sepal.Width Petal.Length Petal. Width Species 1 4.3 3.0 1.1 0.1 setosa 2 4.4 2.9 1.4 0.2 setosa 3 4.4 3.0 1.3 0.2 setosa desc()で降順にする
  36. 36. 縦に結合 > iris1 <- iris[1:50,] > iris2 <- iris[51:100,] > rbind_list(iris1, iris2) %>% + dim(.) [1] 100 5
  37. 37. マージ ● 内部結合 ○ inner_join(df1, df2, by=c(“列名”)) ● 左結合 ○ left_join(df1, df2, by=c(“列名”))
  38. 38. 縦横の変換 reshape2 — 柔軟なデータ変形ツール http://meme.biology.tohoku.ac. jp/students/iwasaki/rstats/reshape2. html を参考
  39. 39. 告知 2014年12月6日に Japan.Rを開催します。 LTを募集してます。 6人ぐらい?
  • KoheiKatsuda

    Apr. 11, 2021
  • SatoshiIdo1

    Mar. 11, 2020
  • eiichitsuji

    Aug. 23, 2017
  • toshiakisako

    Sep. 19, 2016
  • YasunariIkeda

    May. 28, 2016
  • kyyonko

    Oct. 19, 2015
  • ssuserb78a39

    Sep. 9, 2015
  • WataruHarakita

    Jul. 3, 2015
  • ikkuna76

    Jun. 20, 2015
  • kiyoshikobayashi1971

    Jun. 8, 2015
  • tomoshigenakamura

    Feb. 19, 2015
  • passfield2003

    Jan. 31, 2015
  • chilayutt

    Jan. 28, 2015
  • hideyoshitakahashi58

    Dec. 30, 2014
  • KanSakamoto

    Nov. 30, 2014
  • narupeko

    Oct. 21, 2014
  • ssuseredb34d

    Sep. 13, 2014
  • hugokawamura

    Sep. 2, 2014
  • NobuhikoNiida

    Sep. 1, 2014
  • otanet

    Aug. 30, 2014

R入門(dplyrでデータ加工)-TokyoR42

Views

Total views

19,788

On Slideshare

0

From embeds

0

Number of embeds

10,954

Actions

Downloads

77

Shares

0

Comments

0

Likes

21

×