10

データを ggplot コマンドに渡すときに、ティー演算子 %T>% が機能しない理由を理解しようとしています。

これはうまくいきます

library(ggplot2)
library(dplyr)
library(magrittr)

mtcars %T>%
  qplot(x = cyl, y = mpg, data = ., geom = "point") %>%
  qplot(x = mpg, y = cyl, data = ., geom = "point")

そして、これもうまくいきます

mtcars %>%
  {ggplot() + geom_point(aes(cyl, mpg)) ; . } %>%
  ggplot() + geom_point(aes(mpg, cyl))

しかし、以下のようにティー演算子を使用すると、「エラー: ggplot2 はクラス protoenvironment のデータを処理する方法がわかりません」がスローされます。

mtcars %T>%
  ggplot() + geom_point(aes(cyl, mpg)) %>%
  ggplot() + geom_point(aes(mpg, cyl))

この最後のコードが機能しない理由を誰か説明できますか?

4

3 に答える 3

6

あなたの問題は、操作の順序に関係していると思います。オペレーター+より強い(ヘルプページによる)。追加する前にdata= パラメータを渡す必要があります。私はあなたが欲しいと思います%T>%?Syntaxggplotgeom_point

mtcars %T>%
  {print(ggplot(.) + geom_point(aes(cyl, mpg)))} %>%
  {ggplot(.) + geom_point(aes(mpg, cyl))}

機能的な「省略形」表記を使用する

于 2014-12-03T05:45:49.023 に答える