R4DSセクション3.6で、著者は次のコードを提示します。
ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) +
geom_point(mapping = aes(color = class)) +
geom_smooth(data = filter(mpg, class == "subcompact"), se = FALSE)
次のエラーが発生します
Error in class == "subcompact" :
comparison (1) is possible only for atomic and list types
著者が結果を示すニースのプロットを持っているので、著者がそれを書いたときにうまくいったと思います。
何が起こっているのですか、どうすれば修正できますか? (R 3.3.2 on OS X)ありがとう
filter()
関数はdplyr
パッケージに由来します。これらの行を実行する前に、必ずロードしてください。それ以外の場合は、_mpg$class
_ではなく、組み込み関数であるclass()
との比較を実行しています。
おそらく、関数(フィルター)がロードされ、dplyrフィルターをマスクした別のパッケージがあります。
迅速かつ汚い修正:
dplyr::filter()
の代わりに
filter()
ライブラリを使用する(dplyr)
library(dplyr)
ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) +
geom_point(mapping = aes(color = class)) +
geom_smooth(
data = filter(mpg, class == "subcompact"),
se = FALSE)