首页 > 解决方案 > 在 r 中的 for 循环中重复迭代

问题描述

我正在尝试生成一个 for 循环,它将重复以下序列:

sample(x  = 1:14, size = 10, replace = TRUE, prob = c(1/4,1/4,1/4,1/4)

我希望它重复 5000 次。到目前为止,我将上述内容作为循环的主体并添加了

for (i in seq_along[1:5000]){

一开始但我收到一条错误消息说

Error in seq_along[1:10000] : object of type 'builtin' is not subsettable

标签: r

解决方案


这里有几个问题。

  • @MartinGal 注意到语法问题seq_along和缺少的). 请注意,您可以使用seq(n)1:n定义循环数。
  • 您没有将采样向量存储在任何地方,因此 for 循环将运行代码,但您不会捕获输出。
  • 你有x = 1:14,但你只有 4 个prob值,这表明你打算x = 1:4(或者你是 10 个prob值)。

这是使用 for 循环解决这些问题的一种方法。

n <- 5
s <- 10
xmax <- 4
p <- 1/4
out <- matrix(nrow = n, ncol = s, byrow = TRUE)

set.seed(1L)
for (i in seq(n)) {
  out[i, ] <- sample(x = seq(xmax), size = s, replace = TRUE, prob = rep(p, xmax))
}

推荐阅读