代码之家  ›  专栏  ›  技术社区  ›  antecessor

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

  •  1
  • antecessor  · 技术社区  · 8 年前

    让我们从一些数据开始:

    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 回复  |  直到 8 年前
        1
  •  2
  •   akrun    8 年前

    我们可以把代码放在一个大括号里 replicate

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

    编辑:基于@ben bolker的评论