- 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
|
2606
18
[有偿编程] 求教大拿R data.table运算速度问题! |
|
已卖:1754份资源 博士生 32%
-
|
100论坛币
最佳答案以下是测试结果,m是一个100,000*10的"dgeMatrix"类的矩阵,dt是把m转化成"data.table"类的变量,vec是一个代表系数的向量,测试代码如下:
第一种方法是data.table的运算,后两种方法分别用了%*%和tcrossprod(),两者相差不大,但比第一种data.table运算节省时间60%以上。
| |
|
|
| ||
| ||
| ||
| ||
| ||
| ||
加好友,备注cda京ICP备16021002号-2 京B2-20170662号
京公网安备 11010802022788号
论坛法律顾问:王进律师
知识产权保护声明
免责及隐私声明


