让我们从一些数据开始:
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的评论