如何为回路R程序运行速度?

问题描述 投票:1回答:1

我使用以下qazxsw POI来计算左侧和右侧每个r code日志可能性。

但我想为大量生成的数据集,例如i = 1,2,...,200做这个程序和重复的a = 10000次整个循环。我怎样才能加快下面的程序?我能够使用1000function代替apply功能?

先感谢您!

for
r for-loop apply sapply
1个回答
1
投票

你可以把loglike_profb的计算成一个函数,然后使用n1 = 100 n2 = 100 a = 1000 n= n1 + n2 # number of simulated copies of y sim.data = matrix(NA, nrow = n, ncol = a) for (i in 1:a) { #for(j in 1:a){ sim.data[,i] = c(rnorm(n1, 2, 1), rnorm(n-n1, 4, 1)) #} } dim(sim.data) # Compute the log-likelihood B = ncol(sim.data) loglike_profb = matrix(NA, n - 1, B) for (j in 1:B) { for (i in 1:(n - 1)) { loglike_profb[i, j] = -0.5*(sum(((sim.data[1:i,j]) - mean(sim.data[1:i,j]))^2) + sum(((sim.data[(i + 1):n,j]) - mean(sim.data[(i +1):n,j]))^2)) } }

mapply
© www.soinside.com 2019 - 2024. All rights reserved.