我正在寻找运行这个 for 循环,但它需要很长的时间(~20s)来执行。 x 和 y 是长度为 2000000 的预定义向量。

for(i in 1:2000000)
{
    a <- runif(1)
    b <- runif(1)
    sqrtf <- sqrt(-log(b,10))

    x[i] <- sqrtf*cos(a)
    y[i] <- sqrtf*cos(b)
}

有什么技巧可以加快速度吗?

编辑:修复了 sqrtf

最佳答案

n <- 2e6
set.seed(101)
a <- runif(n)
b <- runif(n)
sqrtf <- sqrt(-log10(b))
x <- sqrtf*cos(a)
y <- sqrtf*cos(b)

关于r - 加速 R 中的 for 循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9455154/

10-09 22:35