我的公式存在数学语法问题。
我的目的是在j上施加一个条件,以便prod()只计算在所有j上但是i。
示例代码
T2
我在哪里以及如何写这个?
答案 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