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.

Tokyo r28 1

1,152 views

Published on

TokyoR 28回 修正版

  • Be the first to comment

Tokyo r28 1

  1. 1. 初心者セッション1データフレームを使ってみるTOKYO.R #28
  2. 2. 目次1. 自己紹介2. 前回のおさらい3. データフレームって?4. データフレームの作成方法5. データフレームの行・列へのアクセス6. 列・行の追加7. 2つのデータフレームの結合8. まとめ ※ スクリーンショットや機能等はMac版となります。
  3. 3. 目次1. 自己紹介2. 前回のおさらい3. データフレームって?4. データフレームの作成方法5. データフレームの行・列へのアクセス6. 列・行の追加7. 2つのデータフレームの結合8. まとめ ※ スクリーンショットや機能等はMac版となります。
  4. 4. 自己紹介• 名前 :簑田 高志• Twitter ID :aad34210• ブログ :http://pracmper.blogspot.com/• 出身地 :熊本県• 仕事 :インターネット広告(リスティング広 告) のビジネスアナリスト• R歴 :華麗に初心者に転身中
  5. 5. 目次1. 自己紹介2. 前回のおさらい3. データフレームって?4. データフレームの作成方法5. データフレームの行・列へのアクセス6. 列・行の追加7. 2つのデータフレームの結合8. まとめ ※ スクリーンショットや機能等はMac版となります。
  6. 6. 前回のおさらい 1. 主催者里さんの初めてのお休みした会 2. 懇親会用のお酒が小型化& 種類が増えた 1. Rってなに? 2. Rのインストール 3. データ解析の流れ • 変数への代入/計算の仕方 • 配列 • データへのアクセスの仕方 • 関数の使い方http://www.slideshare.net/akiaki5516/10rver21 • データ(CSV)インポート 4. 自作関数 5. パッケージをつかったレポーティング
  7. 7. 目次1. 自己紹介2. 前回のおさらい3. データフレームって?4. データフレームの作成方法5. データフレームの行・列へのアクセス6. 列・行の追加7. 2つのデータフレームの結合8. まとめ ※ スクリーンショットや機能等はMac版となります。
  8. 8. データフレームとは… これ(表)のこと
  9. 9. データフレームとは… 行行・列を持ったデータ構造列
  10. 10. そう、イメージは でOK!
  11. 11. 「ワシ」の本にはこう書いてある• Excelユーザには  データフレームはワークシート、またおそらくワークシート 内の領域のようなものです。…• SQLプログラマには  データフレームはテーブルです。列の方を宣言する必要はあ りません。Rが判断してくれます。• SASユーザには  データフレームはすべてのデータがメモリ内の存在するSAS データ・セットのようなものです。…• 統計学者には  データフレームは観測値の表です。… 引用:Rクックブック P.34
  12. 12. そう、イメージは でOK!
  13. 13. 目次1. 自己紹介2. 前回のおさらい3. データフレームって?4. データフレームの作成方法5. データフレームの行・列へのアクセス6. 列・行の追加7. 2つのデータフレームの結合8. まとめ ※ スクリーンショットや機能等はMac版となります。
  14. 14. データフレームの作成方法データフレームを作成するにはどうしたらよいか?1. ベクトルを「data.frame」に入れる2. ExcelやCSV、TSV、インターネットからインポートする
  15. 15. ベクトルを使ったデータフレーム作成 ベクトルからデータフレームを作成するcol1 <- c(1:10) #1~10col2 <- sample(100 , 10) #100の中から10選ぶcol3 <- col3 <- c(a ,b , c , d , e , f , g , h , i , j) #アルファベットを10samp_df <- data.frame(col1 , col2 , col3)#上記ベクトルをDataFrameへ変換
  16. 16. ベクトルを使ったデータフレーム作成ベクトルからデータフレームを作成する col1 <- c(1:10) #1~10 col2 <- sample(100 , 10) #100の中から10選ぶ col3 <- c(‘a’ ,‘b’ , ‘c’ , ‘d’ , ‘e’ , ‘f’ , ‘g’ , ‘h’ , ‘i’ , ‘j’) #アルファベットを10
  17. 17. ベクトルを使ったデータフレーム作成ExcelやCSV、TSV、インターネットからインポートするfile <- http://www.geocities.jp/ados/exam_results.csv# ネット上にあるデータファイルパスdt <- read.csv(file , header = TRUE , sep = ",")# read.csvファイルでdtに取り込み# もちろんローカルファイルパスでも取り込み可能
  18. 18. ベクトルを使ったデータフレーム作成ExcelやCSV、TSV、インターネットからインポートする
  19. 19. 目次1. 自己紹介2. 前回のおさらい3. データフレームって?4. データフレームの作成方法5. データフレームの行・列へのアクセス6. 列・行の追加7. 2つのデータフレームの結合8. まとめ ※ スクリーンショットや機能等はMac版となります。
  20. 20. データフレームへのアクセス方法ベクトルへのアクセスと同じようにデータフレームへのアクセスが可能。 この列の データを取 り出したい 時dt$national_languageまたはdt[,4]
  21. 21. データフレームへのアクセス方法ベクトルへのアクセスと同じようにデータフレームへのアクセスが可能。※ ベクトル形式で結果を返します
  22. 22. 目次1. 自己紹介2. 前回のおさらい3. データフレームって?4. データフレームの作成方法5. データフレームの行・列へのアクセス6. 列・行の追加7. 2つのデータフレームの結合8. まとめ ※ スクリーンショットや機能等はMac版となります。
  23. 23. 行・列の追加データフレームを扱ってると、データを追加したり、列を追加したりしたいケースrbind() # 行の追加cbind() # 列の追加を使うといいYo!
  24. 24. 行・列の追加行を追加したい場合col1 <- c(11:20) #1~10col2 <- sample(100 , 10) #100の中から10選ぶcol3 <- c(k ,l , m , n , o , p , q , r , s , t) #アルファベットを10samp_df1 <- data.frame(col1 , col2 , col3) #上記ベクトルをDataFrameへ変換rbind(samp_df , samp_df1) #行を追加
  25. 25. 行・列の追加行を追加したい場合 rbind(samp_df , samp_df1) #行を追加 追加されている!
  26. 26. 行・列の追加列を追加したい場合col4 <- sample(200 , 10) #新しく列を追加したいcbind(samp_df , col4) #既存データフレームに追加
  27. 27. 行・列の追加列を追加したい場合 cbind(samp_df , col4) #既存データフレームに追加 追加されている!
  28. 28. 目次1. 自己紹介2. 前回のおさらい3. データフレームって?4. データフレームの作成方法5. データフレームの行・列へのアクセス6. 列・行の追加7. 2つのデータフレームの結合8. まとめ ※ スクリーンショットや機能等はMac版となります。
  29. 29. 二つのデータフレームの結合二つのデータセットで共通の「キー」がある場合例)生徒番号と国語、生徒番号と数学のデータフレームがある場合など student_no <- 1:10 #生徒番号 national_lang <- sample(100 , 10) #国語成績 nl_df <- data.frame(student_no , national_lang) #データフレーム作成 student_no <- 1:10 #生徒番号 math <- sample(100 , 10) #数学成 math_df <- data.frame(student_no , math) #データフレーム作成
  30. 30. 二つのデータフレームの結合二つのデータセットで共通の「キー」がある場合例)生徒番号と国語、生徒番号と数学のデータフレームがある場合などmerge(x , y , by = key)
  31. 31. 二つのデータフレームの結合二つのデータセットで共通の「キー」がある場合例)生徒番号と国語、生徒番号と数学のデータフレームがある場合など student_no <- 1:10 #生徒番号 national_lang <- sample(100 , 10) #国語成績 nl_df <- data.frame(student_no , national_lang) #データフレーム作成 student_no <- 1:10 #生徒番号 math <- sample(100 , 10) #数学成績 math_df <- data.frame(student_no , math) merge(nl_df , math_df , by = "student_no") 追加されている! #Merge関数を使って合成
  32. 32. 二つのデータフレームの結合二つのデータセットで共通のキーがあるが、片方のデータがない場合例)@teramonagiさんがおやすみだったので、数学の試験は受けていませんmerge(x , y , by = key , all.x = TRUE) #xを優先させたい場合merge(x , y , by = key , all.y = TRUE) #yを優先させたい場合
  33. 33. 二つのデータフレームの結合二つのデータセットで共通のキーがあるが、片方のデータがない場合例)@teramonagiさんがおやすみだったので、数学の試験は受けていません student_no <- 1:9 #生徒番号 math <- sample(100 , 9) #数学成績 math_lack_df <- data.frame(student_no , math) #欠けたデータフレーム作成 merge(nl_df , math_lack_df , by = "student_no" , all.x = TRUE) 数学のデータがで ていませんね!
  34. 34. 目次1. 自己紹介2. 前回のおさらい3. データフレームって?4. データフレームの作成方法5. データフレームの行・列へのアクセス6. 列・行の追加7. 2つのデータフレームの結合8. まとめ ※ スクリーンショットや機能等はMac版となります。
  35. 35. まとめ1. データフレームはベクトルや他のデータ(CSV,Excelとか) からつくれるよ2. データフレームへのアクセスは、「dataframe$col_name」や 「dataframe[row,col]」の記述でもアクセスできるよ3. データフレームへの行・列の追加は「rbind() ,cbind()」関数でで きるよ4. 2つのデータフレームの結合(共通部分のみ)は「merge()」関数で できるよ1. 片方がかけてるけど、もう片方のデータを使って全部出したい場合は 「merge(x , y , by = key , all.x = ,all.y = )」でできるよ
  36. 36. ONE MORE THING…Q:これまでR上で作ったオブジェクトが、データフレームかどうかどうやって確認するの?A:is.data.fame(object名)関数で確認してください データフレームであれば 「TRUE」 データフレームでなければ 「FALSE」 を返します。
  37. 37. ご清聴ありがとうございました m(___)m

×