空飛ぶチンアナゴの統計解析日記

統計解析を嗜むチンアナゴのメモ帳です

Rで始めるデータサイエンスの1.3の練習問題1.の解説

1. 次のコードはどこがおかしいか。なぜ点が青になっていないのだろうか。

ggplot(data=mpg) +
  geom_point(
    mapping = aes(x = displ, y = hwy, colour = "blue")
  )

回答をするだけであれば、10Pの正しいコードと比較するだけなので難しくないのですが、この誤ったコードでは何が起きているのかがわからずに悩んでいます。

ggplot(data=mpg) +
  geom_point(
    mapping = aes(x = displ, y = hwy, colour = blue)
  )

とすると、もちろん「Error in FUN(Xi, ...) : object 'blue' not found」エラーがでるので、未知の列名を読み込んでいるわけではなさそう。
文字列のデータであれば何を入れてもエラーメッセージは出ず、コードは何事もなく実行されてしまいます。

ヘルプを見たり教科書を見直しても記載がないので、別の方の解答例を参照すると*1を参照すると

aes()は、変数と値の間のマッピングを行う関数なので、colour = "blue"は単一の値のみをとるカテゴリカル変数として解釈されます(これは色が青という意味ではく、カーディナリティが1のカテゴリカル変数というニュアンス)。なので、すべての点が赤色になります。colour = "1"でも同様の結果です。

とあるもののなんのこっちゃという感じ。

Rのカテゴリー変数について少し勉強する必要がありそうです。