首页 > 解决方案 > r - 分割 beta 分布时,for 循环返回全零

问题描述

我正在尝试分割 beta 分布,但 for 循环返回一个零向量:

my_vector <- vector("numeric", 11L)
prob <- seq(from = 0.0, to = 1, by = 0.1)
for (i in prob ) {
     my_vector[i] <- dbeta(i, shape1=7, shape2=2)
}
my_vector
[1] 0 0 0 0 0 0 0 0 0 0 0

标签: rfor-loop

解决方案


如果你想使用 for 循环来做,你可以这样做:

my_vector <- vector("numeric", 0)
prob <- seq(from = 0.0, to = 1, by = 0.1)
for (i in prob) {
  my_vector <- c(my_vector, dbeta(i, shape1=7, shape2=2))
}

my_vector
[1] 0.0000000 0.0000504 0.0028672 0.0285768 0.1376256 0.4375000 1.0450944 1.9765032 2.9360128 2.9760696 0.0000000

或者你最好按照@jogo的建议这样做:

prob <- seq(from = 0.0, to = 1, by = 0.1)
my_vector <- dbeta(prob, shape1=7, shape2=2)

推荐阅读