r - 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
解决方案
如果你想使用 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)
推荐阅读
- php - Laravel 直到页面加载后才看到用户已登录
- folium - 如何将folium地图库的地图类型更改为Satelite或Terrain等?
- python - 如何使用一个 POST 路由以不同的方法接受数组或对象?
- prestashop - Prestashop 1.7:当订单免费时使用哪个钩子(不付款)
- php - 需要拆分数字值php的帮助
- next.js - Tailwind CSS 在构建后未应用样式
- python - 试图用 tkinter 观察两个 IntVar 并选择最小的数字
- flutter - BuiltValueGenerator - 一个包含大量代码的类
- c - 在 cuda c 中使用矩阵加法,代码执行,但是在使用 nvprof 对其进行分析时。它说没有内核被分析
- python - Python:自动调用所有继承的类