是否有任何可用的资源或是否有人能够解释速度的严重差异,具体取决于R中实现某些内容的方式?
我一直在处理巨大的矩阵并查看R中函数的执行时间。
即,为什么将ifelse语句应用于矩阵,与迭代矩阵中的每个元素相比,执行时间有如此显着的不同?
#Execution time ~1.5s
#dat : list object containing 5 matrices
#command finds the lowest non zero value from dat, if 0 then inf
do.call(pmin, lapply(dat, function(x) ifelse(x == 0, Inf, x)))
将上述内容应用于1000x1000矩阵是不到2秒,但是应用几个for循环,每个元素迭代需要大约15.6秒。
我理解这可能与在R的C级应用函数有关,如果可能的话,我只想作一个明确的解释。
由于