重复一个过程 1000 次并创建一个图

Repeating a process 1000 times and creating a plot

让我们从一些数据开始:

df <- rnorm(30)

我想随机抽样1000次df每次取5个不重复的数并计算其变异系数(cv):

sample_df <- sample(df, 5, replace = F) 
cv <- (sd(sample_df) / mean(sample_df)) * 100

所以现在。我想重复最后两行代码 1000 次,所以我会得到 1000 个系数。我该怎么做?

稍后,我想合并所有系数并绘制直方图或密度图。

我们可以将代码放在大括号内并使用 replicate

n <- 1000
out <- replicate(n, {sample_df <- sample(df, 5, replace = FALSE)
               sd(sample_df)/mean(sample_df) * 100})
hist(out)

编辑:基于@Ben Bolker 的评论