我创建了500,000个随机样本的Beta分布B(1,3),方法是 by <- rbeta(500000, 1, 3)
然后,我计算 sum(log(1-by))
但我想计算5组的 by
这意味着我取了前5个样品的 by
并计算 sum(log(1-by))
在前5个样本的基础上,再取下5个样本(第5至第10个样本),计算出该样本中的 sum(log(1-by))
,这样做直到最后。你能帮我怎么做吗?
集料应该可以完成这项工作
aggregate(by ~ rep(1:100000, each = 5), FUN = function(x) sum(log(1-x)))
这样做 log(1-by)
对每一个 by
然后将第1至5名,第6至10名等相加,如这里所示。
> V1 <- rbeta(6, 1, 3)
> log(1-V1)
[1] -1.03779783 -0.04631726 -0.02731994 -0.99583209 -0.03959935 -0.02131620
> aggregate(V1 ~ rep(1:2, each = 3), FUN = function(x) sum(log(1-x)))
rep(1:2, each = 3) V1
1 1 -1.111435
2 2 -1.056748
要提取那一列的总和值作为一个向量,只需添加 [,2]
后使 aggregate(...)[,2]
.