SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

新着記事一覧を見る

MarkeZine Day(マーケジンデイ)は、マーケティング専門メディア「MarkeZine」が主催するイベントです。 「マーケティングの今を網羅する」をコンセプトに、拡張・複雑化している広告・マーケティング領域の最新情報を効率的にキャッチできる場所として企画・運営しています。

直近開催のイベントはこちら!

MarkeZine Day 2025 Retail

実践!WebマーケターのためのR入門

Rでできるデータの前処理、ユーザーIDをキーにして2つのデータを連結しよう【R入門講座・番外編】


ユーザーIDをキーにして2つのテーブルを連結

 というわけで、データの結合に挑戦しましょう。年齢や性別といった属性情報テーブルとWebサイトの訪問履歴テーブルを、ユーザーIDをキーにしてひとつのテーブルにまとめるときに使えます。ExcelだとVlookup関数を使うイメージですね。

 さっそくサンプルデータの読み込みと確認から始めましょう。ここでは、Cドライブ直下のdataフォルダに2つのサンプルデータ(data1.csvとdata2.csv)を格納しています。Rで扱いやすいよう、これらのデータを読み出して、それぞれ「data1」と「data2」と名前を付けておきます。

data1<-read.csv("c:/data/data1.csv",header=T)

data2<-read.csv("c:/data/data2.csv",header=T)

 はい。上の2つのコマンドを実行したあと、data1とdata2をそれぞれ表示させてみましょう。
 まずはdata1から。

 こちらはdata2です。

 data1は、ユーザーIDと氏名に加えて、ページビュー(PV)、滞在時間(TIME)、コンバージョンしたかどうか(CV)といった、Webサイトの訪問に関するデータです。一方data2は、ユーザーIDと氏名に加えて、年齢(AGE)と性別(SEX)といった属性情報のデータになっています。

 ただ、data1に含まれるユーザーの数は10人なのに対して、data2の方は5人と少ないですね。ですので、連載でご紹介したcbind関数を使ってくっつけてしまうと、ユーザーIDが異なるデータが結合されてしまいます。意味ナイ、ダメ、ゼッタイ

 そこでこの番外編では、merge関数を使ったデータ結合についてご紹介します。

merge関数の使い方

 いよいよ、merge関数の出番です!

m1<-merge(data1, data2, by="USERID", all=F)

 このコマンドを解説していきましょう。

 merge(X,Y, by=Z, all=T or F)

 X,Y 結合するデータを指定します。ここでは、data1data2です。
 Z  キーとなる変数を指定します。ここではUSERIDです。

 ちなみに、テーブルごとに変数名が異なるキーを指定することも可能です。Xの「USERID」とYの「ID」をキーとしたい場合は、by.x="USERID",by.y="ID"と書きます。

 続いて、all=T or F という記述がありますが、allに対しては「T」か「F」を指定します。意味は以下のようになります。

 all=T すべてのデータを残す
 all=F キーとなるIDが共通のものだけを残す

 この違いはちょっとわかりにくいので、それぞれ実例を見て確認しましょう。まずはall=Tから。

m1<-merge(data1, data2, by="USERID", all=T)

 この実行結果は以下のようになります。

 列の数が増えて、data1とdata2に含まれるデータが結合しています。all=Tは「すべてのデータを残す」という指定なので、データは10件あります。ただし、データ件数が多いdata1にしか存在しないユーザーの「年齢(AGE)」と「性別(SEX)」のところに「NA(Not Available)」と入っているのがわかります。

 また、2つのテーブルに同じ名前の変数が存在した場合は、ヘッダ部分の変数名のところに、.x.yという文字が自動的に付与されます。ここではNAME.xNAME.yがそれに該当します。2件目のSUSUKIさんはdata1にはデータがありますが、data2にはありません。なので、NAME.yのところに<NA>と表示されています。

 続いてall=Fです。

m2<-merge(data1, data2, by="USERID", all=F)

 実行結果はこちらです。

 このような結果になります。all=Fは「キーとなるIDが共通のものだけを残す」という指示なので、データ件数の少ないdata2に含まれるユーザーの分だけ、データが結合されています。必要に応じて適切なものを選択してください。

最後に

 データの前処理は分析を行う前の非常に大切なプロセスです。極力自動化して間違いが発生しづらいようにしたいものですね。簡単ではありましたがお役に立てれば幸いです。ではまた!
 See you!

データを分析するにはデータの前処理が必要です

楽しいR

Amazon /  翔泳社
楽しいR
ビジネスに役立つデータの扱い方・読み解き方を知りたい人のためのR統計分析入門

著者:豊澤栄治
出版社:翔泳社
発売日:2015年2月9日
定価:2,200円(税別)

目次

  • 第1章 とっつきにくいけど実はExcel以上に賢いヤツ
  • 第2章 Rで分析を始める前に
  • 第3章 時系列データを分析すると何がわかる?
  • 第4章 Rのパッケージを使って
  • 第5章 正しい分析手法を選ばないと時間のムダ
  • 第6章 「ダミー変数」でデータをまとめてクラスター分析
  • 第7章 どれだけ○○したら◎◎できるのか?
  • 第8章 総まとめ!

この記事は参考になりましたか?

  • Facebook
  • X
  • Pocket
  • note
関連リンク
実践!WebマーケターのためのR入門連載記事一覧

もっと読む

この記事の著者

豊澤 栄治(トヨサワ エイジ)

株式会社ファンコミュニケーションズ サービス開発部 情報科学技術研究所 所長

横浜国立大学経営学部、一橋大学大学院国際企業戦略研究科卒

SPSS Japan、みずほ第一フィナンシャルテクノロジー(株)、外資系運用会社(Amundi Japan)での経験を活かし、金融の分析ノウハウをマーケティ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

MarkeZine(マーケジン)
2015/04/21 12:17 https://markezine.jp/article/detail/22312

Special Contents

PR

Job Board

PR

おすすめ

イベント

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング