发布于 2022-05-13 08:02:25
“大”有多大?如果您确实有一个大型数据集,那么您是----更好的是使用data.table。
下面是一个10毫米行的例子。
# made up example: YOU should provide this
#
set.seed(1) # for reproducible example
df <- data.frame(gene=sample(1:1e6, 1e7, replace=TRUE),
expression=rpois(1e7, 5),
date=sample(43000:44000, 1e7, replace=TRUE))
##
#
library(tictoc) # for timing functions
library(dplyr)
library(data.table)
##
#
tic()
result.1 <- df %>% group_by(gene, date) %>% summarise(expression = sum(expression))
toc()
## 40.83 sec elapsed
##
#
tic()
result.2 <- setDT(df)[, .(expression=sum(expression)), keyby=.(gene, date)]
toc()
## 3.03 sec elapsed所以在这个例子中,data.table的速度要快13倍。
https://stackoverflow.com/questions/72212549
复制相似问题