如何在R中写入和计算(函数的)和/积

如何在R中写入和计算(函数的)和/积,r,sum,R,Sum,假设我有一个函数,假设f(x) 对于x中给定的极限,如何写出此函数的乘积或和 例如,对于x=1直到x=5 f(1)*f(2)*f(3)*f(4)*f(5) 此外,我还需要计算出求和/双倍和。 考虑 f(x,y)< /代码>,和x从1运行到3,y从0运行到x-1。 如果用mathematica编写,它将是: Sum[f[x,y],{x,1,3},{y,0,x-1}] 输出是这样的 f[1,0]+f[2,0]+f[2,1]+f[3,0]+f[3,1]+f[3,2] f不是为了简单而定义的 编辑:根据

假设我有一个函数,假设
f(x)

对于x中给定的极限,如何写出此函数的乘积或和

例如,对于
x=1
直到
x=5
f(1)*f(2)*f(3)*f(4)*f(5)

此外,我还需要计算出求和/双倍和。 考虑<代码> f(x,y)< /代码>,和x从1运行到3,y从0运行到x-1。 如果用mathematica编写,它将是:
Sum[f[x,y],{x,1,3},{y,0,x-1}]
输出是这样的
f[1,0]+f[2,0]+f[2,1]+f[3,0]+f[3,1]+f[3,2]

f
不是为了简单而定义的

编辑:根据要求编辑示例:

f <- function (x,y) { 
x + 2*y 
} 
f您可以这样做:

f <- function (x,y) { 
  x + 2*y 
}
)

#calculate f for all combinations
tmp <- outer(1:3, 0:2, f)

#discard undesired combinations and sum
sum(tmp[lower.tri(tmp, diag = TRUE)])
#[1] 22

f请展示一个可复制的示例请定义
f
。如果
f
是矢量化的,您可以简单地进行
sum(f(1:5))
。如果不是,您可以将其矢量化或使用for循环。@Vandenman为了简单起见,我们假设
f该函数是矢量化的,所以您可以执行
f ok,但是乘积或具有双和,其中一个变量是基于另一个变量定义的,如我的问题所示。让我们假设:
f
inds <- lapply(1:3, function(x) data.frame(x = x, y = 0:(x-1)))
inds <- do.call(rbind, inds)
sum(do.call(f, inds))
#[1] 22