x<-2, y<-4
sum.xy <- function(x){
function(y){x + y}
}
在上面的代码中,我不知道为什么sum.xy()
仅给出非数字值,有人可以解释吗?
答案 0 :(得分:1)
R中任何函数的输出都在return
内部,或者如果没有return
(如您的情况),则返回最后一个“打印对象”。在您的函数中,函数sum.xy
返回一个函数:即函数function(y){x+y}
。
您可以这样测试:
x<-2; y<-4
sum.xy <- function(x){
function(y){x + y}
}
class(sum.xy)
class(sum.xy(7))
sum.xy(7)
所以sum.xy(7)实际上是一个函数,对于给定的y
返回y + 7
。
如果您写sum.xy(7)(4)
,则返回7 + 4。
我还建议您看看at this chapter of advanced R。