Относительно комментариев @Seymour и моих.
Сравнение таблицы данных и матрицы:
require(rbenchmark)
require(data.table)
#Sample data
set.seed(1)
DT_df <- data.table(a = rnorm(4000000), b = rnorm(4000000), c = rnorm(4000000),
d = rnorm(4000000), e = rnorm(4000000))
set.seed(1)
DT_Matrix <- matrix(rexp(2e+07, rate=.1), ncol=5)
#Benchmark
benchmark("data.table" = {
DT_df[,sums:= rowMeans(.SD,na.rm=T)]
},
"Matrix" = {
cbind(DT_Matrix, rowMeans(DT_Matrix, na.rm=T))
},
replications = 1000,
columns = c("test", "replications", "elapsed",
"relative", "user.self", "sys.self"))
Результаты:
test replications elapsed relative user.self sys.self
1 data.table 1000 264.30 1.146 254.08 7.78
2 Matrix 1000 230.64 1.000 213.72 16.29