R中的求和函数

时间:2015-06-17 14:46:18

标签: r

我想计算一个简单的和,但不是从1到我在sum函数中放入的值,而是我希望它像我通常在数学中那样求和,其中我有一个表达式有一些变量,然后我从1:4改变,然后R假设将表达式值相加。

喜欢

y = function(x) x**2

sum(y(x),x=3:5) = 3^2+4^2+5^2

我如何在R?

中执行此操作

4 个答案:

答案 0 :(得分:6)

你几乎已经拥有它,只需将3:5直接传递给y

> y <- function(x) x**2
> sum(y(3:5))
[1] 50

答案 1 :(得分:4)

您可以创建自定义功能:

y = function(x) x^2
x = 3:5
sum(y(x))

虽然这在R中不是标准的,但是分别传递函数和参数的用法是:

mysum <- function(f,vals) sum(f(vals))
mysum(y,3:5)
# [1] 50

答案 2 :(得分:2)

如果你的函数不接受向量,那么你需要使用apply函数。在基地R:

y <- function(x) x^2
sum(sapply(1:4, y))

sum(Vectorise(y)(1:4))

答案 3 :(得分:1)

事先将值分配给x,然后将函数的结果求和。像这样:

INSERT INTO `table3` ( `ID`, `Nn` ) SELECT `t1`.`ID`, `t2`.`Nn` FROM `table1` as `t1`, `table2` as `t2`;