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