4

我刚刚更新到最新dplyr版本 1.0.0。尝试函数中的新summarize功能,例如across.groups。但令我惊讶的是,与以前的版本相比,我的代码变得非常慢。这是一个已知的问题?我做错什么了吗??查看示例。

# Create example data set
library(tidyverse)
n_grps <- 10000
n_rep <- 1000
tbbl <- tibble(grp = rep(1:n_grps, each = n_rep),
               value1 = rnorm(n_grps * n_rep),
               value2 = rnorm(n_grps * n_rep))

以老式方式运行

library(tictoc)
tic()
tbbl %>% 
  group_by(grp) %>% 
  summarize_all(mean) %>% 
  ungroup()
toc()

在我的 Windows 机器上花费不到一秒钟。将其替换为summarize/across

tic()
tbbl %>% 
  group_by(grp) %>% 
  summarize(across(everything(), mean), .groups = "drop")
toc()

超过9秒!

欢迎提出建议。

4

0 回答 0