Apple M2设备上gtsummary运行速度异常缓慢是否正常?
gtsummary::tbl_summary 运行时长相关问题
问题描述
我喜爱gtsummary与tbl_summary的语法,但在配备8GB内存的Mac Book Air M2设备上使用时,发现其运行速度非常缓慢。请问这属于gtsummary的正常渲染时长吗?
附带测试代码:
library(dplyr) library(gtsummary) # 构造测试数据集 set.seed(1) data_set <- as_tibble(rnorm(1000,mean=100,sd=20)) data_set <- data_set %>% mutate(cohort=rbinom(1000,1,0.5), value_2=rnorm(1000,mean=100,sd=20), value_3=rnorm(1000,mean=100,sd=20), value_4=rnorm(1000,mean=100,sd=20), value_5=rnorm(1000,mean=100,sd=20), value_6=rnorm(1000,mean=100,sd=20)) start_time <- Sys.time() data_set %>% tbl_summary(by=cohort) end_time <- Sys.time() end_time-start_time
运行结果:时间差为5.646836秒
解答
- 这个时长属于正常范围,尤其是首次运行
tbl_summary时。gtsummary第一次执行需要加载相关依赖组件(如gt渲染引擎、格式处理模块),后续重复运行同类型代码会明显提速。 - 你的测试数据集包含7个变量(1个分组变量+6个连续变量)、1000条样本,在M2 8GB设备上5-6秒的渲染时间符合预期:gtsummary需要为每个变量计算统计量(均值、标准差,分组对比的统计检验等),同时生成结构化的表格对象,这些过程都需要一定计算资源。
- 优化建议:
- 重复运行时R会缓存已加载的组件,再次调用
tbl_summary速度会显著提升,可以测试再次执行同一段代码的耗时。 - 若处理更大数据集(如十万级样本+数十个变量),可先筛选必要变量减少计算量;或通过
tbl_summary(statistic = ...)指定仅需的统计量,避免默认的全量计算。 - 确保gtsummary和依赖包(dplyr、gt等)为最新版本,新版本通常会包含性能优化。
- 重复运行时R会缓存已加载的组件,再次调用
内容的提问来源于stack exchange,提问作者Pontus Challis
相关产品推荐
相关产品推荐

