如何在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