Rでクラスター分析をggplotでグラフ化するときにfacet_grid(.~変数)でエラー
解決したいこと
Rでクラスター分析(非階層のkmeansをkmeansコマンドとykmeansパッケージを使って)を行なっており、分析結果をggplot2のggplot で、商品カテゴリ別に、各クラスターごとの購入率を棒グラフ化してクラスターの特徴を理解しようとしています。
その際、facet_grid(.~ 商品カテゴリ)
の部分でエラーが起きてしまい、下記のように自分なりに調べて対処しても解決しなかったため、ぜひ解決方法を教えてください!よろしくお願いします!(エラーが消えても、カテゴリーごとではなく、全体のクラスター別表示になってしまいます。)
※データセットやRのバージョンの情報は下記に記載しております。
※PCはMacです。
発生している問題・エラー
`?`(., 商品カテゴリ) でエラー:
no documentation of type ‘.’ and topic ‘商品カテゴリ’ (or error in processing help)
※下記が分析対象のデータセットの情報と、Rのバージョン情報です。
> head(km_melt,15)
km_cls 商品カテゴリ 購入率
1 1 キッチン 0.00000000
2 2 キッチン 0.03906250
3 3 キッチン 0.05000000
4 4 キッチン 0.07547170
5 5 キッチン 0.02777778
6 1 ベビー用品 0.02777778
7 2 ベビー用品 0.11718750
8 3 ベビー用品 0.00000000
9 4 ベビー用品 0.07547170
10 5 ベビー用品 0.16666667
11 1 マタニティ 0.00000000
12 2 マタニティ 0.08593750
13 3 マタニティ 0.00000000
14 4 マタニティ 0.03773585
15 5 マタニティ 0.05555556
> str(km_melt)
'data.frame': 90 obs. of 3 variables:
$ km_cls : Factor w/ 5 levels "1","2","3","4",..: 1 2 3 4 5 1 2 3 4 5 ...
$ 商品カテゴリ: Factor w/ 18 levels "キッチン","ベビー用品",..: 1 1 1 1 1 2 2 2 2 2 ...
$ 購入率 : num 0 0.0391 0.05 0.0755 0.0278 ...
> version
_
platform x86_64-apple-darwin17.0
arch x86_64
os darwin17.0
system x86_64, darwin17.0
status
major 4
minor 0.3
year 2020
month 10
day 10
svn rev 79318
language R
version.string R version 4.0.3 (2020-10-10)
nickname Bunny-Wunnies Freak Out
該当するソースコード
library(gridExtra)
library(scales)
library(ggplot2)
g1 <- ggplot(km_melt, aes(
x = km_cls,
y = 購入率
))
g1 <- g1 + geom_bar(stat = "identity",
aes(fill = km_cls))
g1 <- g1 + facet_grid(.~ 商品カテゴリ)
g1 <- g1 + scale_y_continuous(labels = percent)
g2 <- ggplot(ykm_melt, aes(
x = ykm_cls,
y = 購入率
))
g2 <- g2 + geom_bar(stat = "identity",
aes(fill = ykm_cls))
g2 <- g2 + facet_grid(.~ 商品カテゴリ)
g2 <- g2 + scale_y_continuous(labels = percent)
grid.arrange(g1, g2, ncol = 1)
自分で試したこと
2箇所の facet_grid(.~ 商品カテゴリ)
がエラー対象であり、
このコマンド(facet)を取り除くと、(やりたかったカテゴリー別の数値ごとの棒グラフが実現しないのですが)エラーが消えるので、おそらく対処すべきはfacet_grid(.~ 商品カテゴリ)
という認識で、下記に取り組みましたが、問題は解決できませんでした。
1) facet_wrapに切り替える
(→エラーはなくなりましたが、やりたかったカテゴリー別の数値ごとの棒グラフが実現しない)
2) .
に、試しに目的変数を入れている。
(→解決せず)
3) 商品カテゴリ
を"商品カテゴリ"
にしてみる
(→解決せず)
どうぞよろしくお願いします!