相关疑难解决方法(0)

为什么"矢量化"这个简单的R循环会产生不同的结果?

也许这个问题非常愚蠢.

我试图"矢量化"以下循环:

set.seed(0)
x <- round(runif(10), 2)
# [1] 0.90 0.27 0.37 0.57 0.91 0.20 0.90 0.94 0.66 0.63
sig <- sample.int(10)
# [1]  1  2  9  5  3  4  8  6  7 10
for (i in seq_along(sig)) x[i] <- x[sig[i]]
x
# [1] 0.90 0.27 0.66 0.91 0.66 0.91 0.94 0.91 0.94 0.63
Run Code Online (Sandbox Code Playgroud)

我认为这很简单,x[sig]但结果并不匹配.

set.seed(0)
x <- round(runif(10), 2)
x[] <- x[sig]
x
# [1] 0.90 0.27 0.66 0.91 0.37 0.57 0.94 0.20 0.90 0.63
Run Code Online (Sandbox Code Playgroud)

怎么了?


备注 …

loops for-loop r vectorization

18
推荐指数
1
解决办法
1970
查看次数

标签 统计

for-loop ×1

loops ×1

r ×1

vectorization ×1