我想计算一个简单的和,但不是从1到我在sum函数中放入的值,而是我希望它像我通常在数学中那样求和,其中我有一个表达式有一些变量,然后我从1:4改变,然后R假设将表达式值相加。
喜欢
y = function(x) x**2
sum(y(x),x=3:5) = 3^2+4^2+5^2
我如何在R?
中执行此操作答案 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`;