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