- microbenchmark::microbenchmark(dt[, logit:= vec[1]*V1 + vec[2]*V2 + vec[3]*V3 + vec[4]*V4 + vec[5]*V5 + vec[6]*V6 + vec[7]*V7 + vec[8]*V8 + vec[9]*V9 + vec[10]*V10], m %*% vec, tcrossprod(m, t(vec)), times = 30)
楼主: rockfido
|
2228
18
[有偿编程] 求教大拿R data.table运算速度问题! |
博士生 32%
-
|
100论坛币
最佳答案以下是测试结果,m是一个100,000*10的"dgeMatrix"类的矩阵,dt是把m转化成"data.table"类的变量,vec是一个代表系数的向量,测试代码如下:
第一种方法是data.table的运算,后两种方法分别用了%*%和tcrossprod(),两者相差不大,但比第一种data.table运算节省时间60%以上。
| |
| ||
| ||
| ||
| ||
| ||
| ||
京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明 免责及隐私声明