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() 可能是您想要的。
我想知道如何在 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() 可能是您想要的。