【问题标题】:Plotting a histogram in R在 R 中绘制直方图
【发布时间】:2017-05-23 23:08:25
【问题描述】:

我必须解决以下练习。

(1) 创建 100 个 lambda = 4 的泊松分布式房车

(2) 计算 (1) 中生成的样本的平均值。

(3) 重复 (1) 和 (2) 10.000 次。

(4) 创建一个向量,包含 10.000 个均值。

(5) 在直方图中绘制向量。

下面的解决方案(?)对吗?

> as.numeric(x) 
> for(i in 1:10000){   
> p <- rpois(100, lambda = 4)   
> m <- mean(p)   
> append(x, m) 
>} 
> hist(x, breaks = 20)

【问题讨论】:

    标签: r


    【解决方案1】:

    这有点好笑。您可以以更清晰的方式快速完成您的要求。例如:

    L <- 10000
    emptyvector <- rep(NA, L)
    for(i in 1:L){
      emptyvector[i] <- mean(rpois(100, lambda = 4))
    }
    hist(emptyvector)
    

    我会利用 replicate() 函数创建一个结果矩阵,然后运行 ​​colMeans 来快速获取我的向量。

    meanvector <- colMeans(replicate(10000, rpois(100, lambda = 4)))
    hist(meanvector, main = "Mean values from 10,000 runs of \nPoisson n = 100")
    

    【讨论】:

      【解决方案2】:
      hist(replicate(10000, mean(rpois(100, lambda = 4))))
      

      【讨论】:

        【解决方案3】:

        您需要再次为 x 赋值。

        x1 <- x <- NULL 
        
        for(i in 1:10000){   
          p <- rpois(100, lambda = 4)   
          m <- mean(p)   
          x[length(x) + 1] <- m 
          x1 <- append(x1, m)
        ## X or x1 vector will suffice for histogram
        } 
        hist(x1, breaks = 20)
        

        【讨论】:

        • x
        • 为什么我们需要 x[length(x) + 1]
        猜你喜欢
        • 2015-07-12
        • 1970-01-01
        • 2016-11-23
        • 1970-01-01
        • 2022-08-10
        • 1970-01-01
        • 2017-11-26
        • 2021-04-22
        • 2020-02-06
        相关资源
        最近更新 更多