dplyr输出类data.frame

dplyr输出类data.frame,r,dplyr,R,Dplyr,我可以用dplyr对数据帧进行如下总结: mtcars %>% group_by(cyl) %>% summarise(mean(mpg)) 要将输出转换回classdata.frame,我当前的方法是: as.data.frame(mtcars %>% group_by(cyl) %>% summarise(mean(mpg))) 有没有办法让dplyr输出一个类data.frame,而不必使用as.data.frame?正如注释中指出的那样,您可能不需要转换它,因

我可以用
dplyr
对数据帧进行如下总结:

mtcars %>%
group_by(cyl) %>%
summarise(mean(mpg))
要将输出转换回class
data.frame
,我当前的方法是:

as.data.frame(mtcars %>%
group_by(cyl) %>%
summarise(mean(mpg)))

有没有办法让
dplyr
输出一个类
data.frame
,而不必使用
as.data.frame

正如注释中指出的那样,您可能不需要转换它,因为它可能足够好,可以从数据帧继承。如果这还不够好,那么它仍然使用
as.data.frame
,但稍微优雅一些:

mtcars %>%
   group_by(cyl) %>%
   summarise(mean(mpg)) %>%
   ungroup %>%
   as.data.frame()
添加了我刚刚在评论中看到,您希望这样做的原因是为了避免截断打印输出。在这种情况下,只需在
.Rprofile
文件中定义此选项:

options(dplyr.print_max = Inf)
(请注意,您仍然可以达到与打印相关联的
“max.print”
选项定义的最大值,因此,如果该值对您来说太低,您也需要设置该值。)


更新:
%.
更改为
%>%
,以反映dplyr中的更改。

除了G.Grothendieck上面提到的内容外,您还可以将其转换为新的数据帧:

new_summary <- mtcars %>%
   group_by(cyl) %>%
   summarise(mean(mpg)) %>%
   as.data.frame()
new\u摘要%
组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别
总结(平均(mpg))%>%
as.data.frame()

str
中包装您的第一个调用:
类“tbl_df”、“tbl”和“data.frame”
,或
是.data.frame
[1]TRUE
。plyr包中的ddply如何?我相信这是它的特点purpose@Arun我经常发现自己转换回数据帧,以摆脱控制台上极为恼人的(至少对我来说)打印行为(抑制列)。@joran如果您只想通过删除组来结束打印链,您可以随时覆盖打印方法
print.tbldf,你能用
%.%ungroup()完成这个链吗?