当在sum()项中使用prod()项时,如何构建索引/下标条件?

时间:2016-04-13 09:32:22

标签: r indexing sapply

我的公式存在数学语法问题。

我的目的是在j上施加一个条件,以便prod()只计算在所有j上但是i。

示例代码

T2

我在哪里以及如何写这个?

2 个答案:

答案 0 :(得分:1)

试试这个:

v1 <- 1:3
sum(sapply(seq_along(v1), function(i) i * prod(2 * v1[-i])))

如果v1真的只是1:3,则您只能使用v1代替seq_along(v1)

这里的想法是负指数可用于从矢量中排除元素。因此,v1[-i]v1,并删除了第i个元素。

注意R可以对整个向量进行算术运算。因此,您只需撰写sapply(seq_along(v1), function(j) 2 * v1[j]),而不是2 * v1

答案 1 :(得分:1)

这是另一个选项

library(matrixStats)
sum(seq_along(v1)*colProds(2*matrix(v1, nrow=4, ncol=3)[-c(1,4),]))
#[1] 72