Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 优化apply()_R_Apply - Fatal编程技术网

R 优化apply()

R 优化apply(),r,apply,R,Apply,我想优化以下代码。目前,它在2Ghz双核机器上运行约0.085秒,带有2MB二级缓存,M是2404 x 100的数字矩阵: Rescale <- function( M = utility.mat){ exp.M <- exp(M) result <- apply(exp.M, 1, function(x) x/sum(x)) result <- t(result) return (result) } Rescale这在我的机器上似乎快了大约6倍: R

我想优化以下代码。目前,它在2Ghz双核机器上运行约0.085秒,带有2MB二级缓存,M是2404 x 100的数字矩阵:

Rescale <- function( M = utility.mat){
  exp.M <- exp(M) 
  result <- apply(exp.M, 1, function(x) x/sum(x))
  result <- t(result)
  return (result)
}

Rescale这在我的机器上似乎快了大约6倍:

Rescale1 <- function(M){
    M <- exp(M)
    result <- M / rowSums(M)
    return (result)
}

重新缩放1谢谢。这给了我0.28秒的时间。只有在调用
行和
的开销较大时,调用
.Internal
(一般不建议!)才有帮助。既然你只叫它一次,那就没意义了。在R2.15中,现在有了
.rowSums
,它的黑客性要小得多。但在这里仍然没有帮助。