楼上同学的解决方案中有一个小错误,代码的第三行应该是:
colprod <- vector(length = nrow(x))
可能是编的快,疏忽了。
楼主的这个问题,我尝试用向量化来解决,发现力不从心。该问题似乎是循环起来很简单,但是向量化非常吃力的那种问题,并且,该问题的计算量随着列数的增长而呈现几何级数地增加的。在我的电脑中,当列数过1000后,耗时就比较明显了。于是,我想用Rcpp包的C++程序来解决这个问题:
在我的电脑上运行,速度提升大概36倍左右,不是很让人满意,是不是我的程序还有问题,请大神指点。