My function works, but it is very slow when I have large dataset.
What can I do to speed it up? I know we should avoid using double for-loop, but I don't know why.
Thanks so much!
n <- 3
wr <- c(0.9, 0.6, 0.5)
mat <- matrix(1:9, nrow=3, byrow=TRUE)
tmp <- matrix(nrow = n, ncol = n)
out <- rep(0, n)
colsum <- apply(mat, 2, sum)
for (i in 1:n) {
for (j in 1:n) {
tmp[i, j] <- (mat[i, j]/ colsum[j])*(1-wr[j])
}
}
for (i in 1:n) {
out[i] <- 1-sum(tmp[1:n,i])
}