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

时间:2018-07-12 17:44:05

标签: r bootstrapping repeat

让我们从一些数据开始:

df <- rnorm(30)

我想随机采样1000次df,每次获取5个数字而无需重复,并计算其变异系数(cv):

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

编辑:基于@Ben Bolker的评论