有没有办法在 R 中对整个数据集重复一个函数 n 次?

Is there a way to repeat a function on a whole dataset n times in R?

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

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

    x <- rnorm(100, 0, 1)

我想生成一个新对象,其中包含使用 sample(x, size=100, replace=F) 打乱 10,000 次的 x。比如,我想要结束的不是这些重复全部混在一起,而是让 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))