R中的'sample()'是否可以按指定顺序进行采样?
我想知道如何从1到1000生成1000个整数,在R中一次生成一个。将其作为函数,这意味着在函数的第一次运行时,函数应生成R中的'sample()'是否可以按指定顺序进行采样?,r,function,random,sampling,R,Function,Random,Sampling,我想知道如何从1到1000生成1000个整数,在R中一次生成一个。将其作为函数,这意味着在函数的第一次运行时,函数应生成1,第二次运行2,第三次运行31000 我在R中尝试了以下方法,但没有成功: gen = function(n){ sample(1:n, 1, replace = FALSE) } gen(1000) gen这是非常糟糕的做法,您最好重新考虑您的计划,但我们可以使用全局变量,使用看起来你想要的是来自迭代器的东西。顺便说一句,这是一个可怕的想法。你可能想重新考虑你的方
1
,第二次运行2
,第三次运行3
<代码>1000
我在R中尝试了以下方法,但没有成功:
gen = function(n){
sample(1:n, 1, replace = FALSE)
}
gen(1000)
gen这是非常糟糕的做法,您最好重新考虑您的计划,但我们可以使用全局变量,使用看起来你想要的是来自迭代器的东西。顺便说一句,这是一个可怕的想法。你可能想重新考虑你的方法。Down.voter你能解释一下为什么否决这个问题吗?@rnorouzian,我也真的不知道是谁否决了,为什么!?我想您可能误解了我的目的,我要求每次运行函数时生成一个数字。也就是说,第一次运行gen(1000)
,函数应该生成1
,第二次运行gen(1000)
它必须生成2
。我想我误解了意图,事实上我仍然不理解意图。这是迭代。复制是一个迭代器。。。。
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