访问分组的dplyr摘要中的完整数据,而不依赖dplyr内部

访问分组的dplyr摘要中的完整数据,而不依赖dplyr内部,r,dplyr,R,Dplyr,我有一个应该在分组的dplyr::summary()中使用的函数。我想访问每个组的数据以及完整数据。前者可以通过dplyr::cross()轻松实现。对于后者,我只看到依赖内部函数mask#A tible:3 x 3的选项 #>齿轮组行满数据 #> #> 1 3 15 32 #> 2 4 12 32 #> 3 5 5 32 由(v0.3.0)于2020

我有一个应该在分组的
dplyr::summary()
中使用的函数。我想访问每个组的数据以及完整数据。前者可以通过
dplyr::cross()
轻松实现。对于后者,我只看到依赖内部函数
mask#A tible:3 x 3的选项
#>齿轮组行满数据
#>              
#> 1     3         15        32
#> 2     4         12        32
#> 3     5          5        32

由(v0.3.0)于2020年12月9日创建

一个选项是
cur\u data

foo <- function() {
 
  tibble(group_rows = nrow(across()),
         full_data = nrow(cur_data())) 
        
}

mtcars %>% 
 group_by(gear) %>% 
 summarise(foo(), .groups = 'drop') %>%
 mutate(full_data  = sum(full_data))
foo%
分组依据(档位)%>%
总结(foo(),.groups='drop')%>%
变异(完整数据=总和(完整数据))
-输出

# A tibble: 3 x 3
#   gear group_rows full_data
#  <dbl>      <int>     <int>
#1     3         15        32
#2     4         12        32
#3     5          5        32
#一个tible:3 x 3
#齿轮组行满数据
#             
#1     3         15        32
#2     4         12        32
#3     5          5        32

您能详细说明您的具体要求吗?实际函数相当复杂,但本质上它将分组数据与完整数据进行比较,挑战在于在
摘要
中的函数中完成此操作。感谢您的回答<代码>当前数据还返回分组数据。理想情况下,我想创建一个函数
foo
,该函数在
summary
中创建上述输出,而不指定进一步的参数或添加调用。@TimTeaFan
peek\u mask
函数有什么问题吗我想在包中使用它,我认为依赖我所做的包的内部函数是不好的做法不维护。@TimTeaFan-我认为这取决于分发另一个包的许可证。然后,您可以复制源代码,并使其成为您自己包的内部函数,并得到其他作者的适当确认。只是一个想法:)