drop()已经非常快了(因为它是一个内部函数)。
非常大的阵列(例如基因组学)有更快的速度吗?
'abind'程序包具有'adrop()',但它是用纯R编写的,并且速度要慢几个数量级。
以下是一些基准:
library(bench)
x <- array(1:(10000 * 1000), dim = c(10000, 1000, 1))
bench::mark(drop(x), adrop(x, drop = 3))
Unit: nanoseconds
expr min lq mean median uq max neval
drop(x) 570 661 905.56 986.5 1069.5 3631 100
adrop(x, drop = 3) 20962 21370 24563.73 21603.5 21880.5 297273 100