4

qplot(ggplot2)を使用してから、データを転送したいmagrittr

これは機能します:

mtcars %>% qplot(mpg, cyl, data=.)

これによりエラーが発生します。

mtcars %>% qplot(mpg, cyl, data=.) %>% summarise(mean(mpg))

そして、それらは要約統計のみを生成します:

mtcars %T>% qplot(mpg, cyl, data=.) %>% summarise(mean(mpg))
mtcars %>% {qplot(mpg, cyl, data=.); .} %>% summarise(mean(mpg))
mtcars %T>% {qplot(mpg, cyl, data=.)} %>% summarise(mean(mpg))

何が問題ですか?私はすでにこの解決策を見つけましたが、添付のコードからわかるように、役に立ちません。

4

2 に答える 2

6

すべての ggplot2 関数は、プロットを表すオブジェクトを返します。表示するには、印刷する必要があります。これは通常、コンソールで作業しているときに自動的に発生しますが、関数またはチェーン内で明示する必要があります。

私が思いつくことができる最もエレガントなソリューションはこれです:

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

echo <- function(x) {
  print(x)
  x
}
mtcars %>% 
  {echo(qplot(mpg, cyl, data = .))} %>% 
  summarise(mean(mpg))

もっと良い方法があるはずです。

于 2014-12-04T15:06:25.867 に答える