Агрегат должен выполнять работу
aggregate(by ~ rep(1:100000, each = 5), FUN = function(x) sum(log(1-x)))
Это делает log(1-by)
для каждого элемента by
, а затем суммирует значения для 1-5, 6-10 и т.д. c. как показано здесь
> 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]
.