One of my favorite things is ...

2019.09.12
XML
カテゴリ: データ分析
​​​  楽天市場の商品レビューの分析を半自動化していきたいと考えていますが、レビューの投稿日を示すカレンダーヒートマップを「R」のコードで作成してみました。

これまでは、Microsoft Power BI Desktopを利用してカレンダーヒートマップを作成していましたが、「R」のコードでスクレイピングしたデータを利用して、「R」のコードの一連の作業として作成できれば、効率的です。

 Power BIの場合は、「日付」別のレビュー件数の列がなくても、日付をカウントして、カレンダーヒートマップを作成できますが、「R」のカレンダーヒートマップの場合は、「日付」に対応するデータの列が必要になるようです。

 「R」でカレンダーヒートマップを作成するためには、日付の文字列を日付型にするのと、日付別のレビュー件数の列(変数)を作成する必要があります。

 また、レビューの日付に古いものが含まれているとカレンダーヒートマップの対象期間が長期間になります。しかし、長期間にわたるカレンダーだとグラフが小さくなって見づらくなります。そこで、最新のレビューの日付の年から2年さかのぼって、3年間をグラフの対象にすることにしました。

 商品によっては、対象期間を変更する必要があるかもしれませんが、デフォルトで3年間のカレンダーの枠を用意しています。





▼スクレイピング済みのデータがあることを前提としています。スクレイピングのコードは関連記事にあります。

 以下のコードに必要なパッケージは次のようなものになります。

library(tidyverse)
library(ggplot2)
library(ggTimeSeries)


▼dateの文字列を日付型に変換して、日付の列と日付別のレビュー件数の列によるデータ「df_rday」を作成

df_r$date <- as.Date(df_r$date)
df_rday <- select(df_r, date) %>% group_by(date) %>% summarise(count=n())


▼カレンダーヒートマップのグラフの枠を3年分にする

 カレンダーの表示期間を調整するために、yearの列を追加します。yearの値を利用して、最新のレビューの日付の年から2年さかのぼる形でカレンダーの期間を設定します。「date」を利用して、「
max(df_rday$date)-730)」といった方法もありますが、グラフ化されるのは730日分のレビュー投稿件数に限られ、3年間の枠一杯にデータが表示される形とは異なります。

df_rday$year <- as.integer(substring(df_rday$date,1,4))
df_rday <- filter(df_rday, year >= max(df_rday$year)-2)


▼カレンダーヒートマップを作成
​ 日や月の枠線の太さを調整すれば、より見やすい形にできると思います。​

ggplot_calendar_heatmap(df_rday, cDateColumnName = "date",
  cValueColumnName = "count", vcGroupingColumnNames = "Year",
  dayBorderSize = 0.5, dayBorderColour = "black",
  monthBorderSize = 2, monthBorderColour = "blue",
  monthBorderLineEnd = "round") + 
  scale_fill_continuous(low = 'yellow', high = 'red') +
  facet_wrap(~Year, ncol = 1)




☆関連記事​
▼楽天市場の商品レビューの分析:【R】のコードで半自動化を目指します:テキストマイニング編


▼楽天市場ランキング上位のメンズ・ボトムスの商品レビューの分析をしました:「R言語」によるスクレイピング

▼楽天市場のランキング上位の「zootie:エアパンツ」の商品レビューをテキストマイニングしてみました:「ファッションジャンル商品対応版のRコード」でスクレイピング

▼【再改訂版コード】:「R言語」による楽天市場の商品レビューのスクレイピングコードの再改訂版:グラフ作成コードなどを追加:「素焼きアーモンド」の商品レビューのデータを取得:意外と多い「はじめて」の購入

▼「R言語」による楽天市場の商品レビューのスクレイピングコードの改訂版です:Excelで項目を切り分ける作業が不要になりました

▼楽天市場の
特定の商品のレビューを「R言語」でスクレイピングするコード:一部の項目の空欄・欠損値(missing values)を「NA」に置き換えてデータフレームを作成:継ぎはぎのコードですが・・・


▼JPRiDEの新モデル・完全ワイヤレスイヤホン「JPRiDE TWS-520」のアマゾン・カスタマーレビューのテキストを分析

▼「JPRiDE」ブランドのワイヤレスイヤホン「JPRiDE 708」の楽天市場のレビューのテキストを分析:ReviewMetaでアマゾンのカスタマーレビューの信頼性の高さを推定できるJPRiDEの製品 ​​

▼雑誌など第3者の高評価をアピールしている「JPRiDE(ジェイピー・ライド)」ブランドのワイヤレスイヤホン「JPA2」の楽天市場のレビューのテキスト分析です


▼JVCケンウッドの高評価イヤホン「HA-FX3X」とソニーの「MDR-EX450」のカスタマーレビューを比較

▼3000円クラスの高評価イヤホン「HA-FX3​のカスタマーレビューのテキスト分析を「User Local」の「AIテキストマイニング」で行ってみました:こんな分析ツールがあったとは、驚きです

▼カスタマーレビュー分析で、Microsoft Power BIの「Word Cloud」とスライサーの組み合わせは便利です:3000円クラスで、高評価のイヤホン「HA-FX3X」のカスタマーレビューのテキスト分析

▼アマゾンのカスタマーレビューを購入の判断材料にする場合、「ReviewMeta」(レビューメータ)によるチェックが役立ちます


​▼先日購入したイヤホン「HA-FX3X」のアマゾン・カスタマーレビュー分析:低音の良さ、コスパなどが高評価の理由のようです​:3000円クラスで、高評価のイヤホンです​


[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Rではじめるデータサイエンス [ Hadley Wickham ]
価格:4320円(税込、送料無料) (2019/9/14時点)



​​​





お気に入りの記事を「いいね!」で応援しよう

Last updated  2019.11.03 07:58:06
コメント(0) | コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Create a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: