R 中的 sample() 可以按指定顺序采样吗?

Can `sample()` in R just sample in a specified order?

我想知道如何在 R 中一次生成一个从 1 到 1000 的 1000 个整数将其设为函数, 这意味着在函数的第一个 运行 上,函数应该产生 1,第二个 运行 2,第三个 运行 3, ... 1000?

我在 R 中尝试了以下但没有成功:

gen = function(n){
  sample(1:n, 1, replace = FALSE)
  }
gen(1000)
gen <- function(n)  {replicate(1000,sample(1:n,1))}

这是非常糟糕的做法,您最好重新考虑您的计划,但我们可以使用全局变量来做到这一点,使用 <<-:

myfunc <- function(){
  if(!exists('mycounter')){
    mycounter<<-1
  }else {
    mycounter <<- mycounter + 1
  }
  return(mycounter)
}

> myfunc()
[1] 1
> myfunc()
[1] 2
> myfunc()
[1] 3
> myfunc()
[1] 4

您可以将其扩展为例如:索引另一个随机向量。虽然,set.seed() 可能是您想要的。