使用带有reduce的分组摘要时保留TIBLES列 问题:

使用带有reduce的分组摘要时保留TIBLES列 问题:,r,dplyr,purrr,R,Dplyr,Purrr,当在包含tibble的列上使用tibble%>%groupby()%>%summary(…=reduce(…)时,我希望输出保持为tibble列。我如何才能最有效地做到这一点 最简单的例子: 设置 vec1=rnorm(10) vec2=rnorm(10) vec3=rnorm(10) vec4=rnorm(10) tib=tibble(grpvar=系数(c('a','a','b','b')) tib$col2=1 tib$col2[1]=TIBLE(vec1) tib$col2[2]=tib

当在包含tibble的列上使用
tibble%>%groupby()%>%summary(…=reduce(…)
时,我希望输出保持为tibble列。我如何才能最有效地做到这一点

最简单的例子: 设置

vec1=rnorm(10)
vec2=rnorm(10)
vec3=rnorm(10)
vec4=rnorm(10)
tib=tibble(grpvar=系数(c('a','a','b','b'))
tib$col2=1
tib$col2[1]=TIBLE(vec1)
tib$col2[2]=tibble(vec2)
tib$col2[3]=tibble(vec3)
tib$col2[4]=tibble(vec4)
这就是它看起来的样子:

grpvar col2
1A
2A
3 b
4 b
一个非常小的TIBLE,其中包含一个用于分组的变量,另一列包含包含长度为10的向量的TIBLE

问题

摘要中使用
reduce
简化了输出

tib%>%分组依据(grpvar)%>%汇总(aggr=reduce(col2,`+`))
收益率:

grpvar aggr
1A-0.0206
...
10A-0.101
...  
20 b 0.520
在这里,tibble变得很长。。。我不希望每个组变量有10行,而是只需要一个包含10个值的TIBLE

所需输出:

这就是它应该看起来的样子


desired\u outoutWrap
reduce
list

tib%>%groupby(grpvar)%>%summary(aggr=list(reduce(col2,`+`)))
输出:

#一个tible:2x2
grpvar aggr
1A
2 b

这很有效。我想知道它的效率有多高,
reduce
是否应该提供一个
simplify=FALSE
参数。