在ggplot之后在管道中使用dplyr函数

在ggplot之后在管道中使用dplyr函数,r,dataframe,ggplot2,dplyr,R,Dataframe,Ggplot2,Dplyr,在管道中使用ggplot后,是否可以进行总结?这个变量不是很重要,我只是出于探索的目的来看待这个变化。因此,我真的不想保存变量 df %>% mutate(change = t2 - t1) %>% ggplot(aes(x = change)) + geom_histogram() %>% summarise(mean_change = mean(change)) Error in UseMethod("su

在管道中使用ggplot后,是否可以进行
总结
?这个变量不是很重要,我只是出于探索的目的来看待这个变化。因此,我真的不想保存变量

df %>% 
        mutate(change = t2 - t1) %>%
        ggplot(aes(x = change)) +
        geom_histogram() %>%
        summarise(mean_change = mean(change))

Error in UseMethod("summarise_") : no applicable method for 'summarise_' applied to 
an object of class "c('LayerInstance', 'Layer', 'ggproto')"

有可能在同一管道中呈现ggplot输出并进行总结吗?(显示平均值)?

我不知道这是否正是您想要的,但您的问题让我想起了magittr中的t管道(dplyr和tidyverse的一部分),我在这里的在线“R for Data Science”一书中找到了它:

使用此T形管,您可以ggplot并继续汇总,因为T形管返回的不是ggplot对象,而是传递给ggplot的对象。

使用此选项可以:

# devtools::install_github("moodymudskipper/ggfun")
library(tidyverse)
library(ggfun)
iris %>% 
  mutate(x = Sepal.Length * Sepal.Width) %>%
  ggplot(aes(x)) +
  geom_density() -
  as_mapper(~{print(summarise(.,mean_x = mean(x)));.})

-
运算符用于在数据上应用函数并仍然返回ggplot对象,因此我们将其应用于打印,但仍然返回原始数据以获得绘图。

如果您查看geom_直方图后的
str
,它将是ggplot对象,而不是
df
@akrun中的原始对象,谢谢。我意识到了这一点。但是,是否可以在同一管道中呈现ggplot输出并进行总结?@Roland函数
hist
抛出了一个错误:
'x'必须是数字
,因此我放弃了
hist
。。。但这个情节是可行的fine@Roland我编辑了我的问题,添加了“是否可以在同一管道中呈现ggplot输出并进行总结(显示平均值)?谢谢。