是否有一种方法可以在R中对整个数据集重复n次函数?



感觉这是一个超级基本的问题,但是我有点卡住了。

假设我有一个100项的数据集:

x <- rnorm(100, 0, 1)

我想生成一个新对象,它由x组成,使用sample(x, size=100, replace=F)进行10,000次洗牌。比如,我最后想要的不是把这些重复都洗牌在一起,而是让x中的每个项在出现两次之前出现一次,等等。

我觉得这应该是超级简单,但不知道该怎么做?我的第一个想法是rep(),但这给了我相同的洗牌n次,我希望每次洗牌都是独立的。我试着

repeat{ 
sample(x, size=100, replace=F)
i <- i + 1
if (i == n){
break
}
}

,但这是非常慢的,即使是少量的重复。也想到了apply家族,但似乎他们打算对列表中的每个项目重复命令,而不是对整个列表做一些事情几次?(如果错了请纠正我!)

我将非常感谢任何帮助!

对问题的回答:

reps <- as.vector(replicate(sample(x, replace = F, size = length(x)), n = 10000, simplify = F)

然后将其转换为更可用的格式,

reps <- as.numeric(unlist(reps))

相关内容

  • 没有找到相关文章

最新更新