功能累积

时间:2018-01-21 07:09:38

标签: r

a <- function(x){
         a = 2*x*x
         return(a)
         }
 b (x) <- a(1) + a(2) + ... + a(x)

有函数a,我想写一个函数b,这是函数的积累a。 我把它写在R。

2 个答案:

答案 0 :(得分:3)

也许是这样的:

a <- function(x)
{2*x*x}

b<- function(y)
{sum(sapply(seq(y),a))}

所以

b(3) = 28

b(3) = a(1) + a(2) + a(3) 
     = 2*1*1 + 2*2*2 + 2*3*3 
     = 2 + 8 + 18 
     = 28

答案 1 :(得分:1)

函数b创建一个表达式并计算该表达式以返回结果。

a <- function(x){
  return(2*x*x)
}  

b <- function(x){
  eval( parse( text = paste0( strsplit( paste0( "a(", x, ")"), " "), collapse = "+") ))
} 

b(1:2)
# [1] 10
b(1:3)
# [1] 28
b(1:5)
# [1] 110
b(c(2,4,6))
# [1] 112