crossval <- function(data, lambda=0, ytrans=function(x) x)
我想知道在函数参数列表有什么功能(X)意味着什么呢?如果一次又一次或东西调用同一个功能?如果是这样,有可能调用函数crossval本身吗?我需要变量ytrans吗?我们不能只调用函数体中的函数(x)吗?
crossval <- function(data, lambda=0, ytrans=function(x) x)
我想知道在函数参数列表有什么功能(X)意味着什么呢?如果一次又一次或东西调用同一个功能?如果是这样,有可能调用函数crossval本身吗?我需要变量ytrans吗?我们不能只调用函数体中的函数(x)吗?
默认函数是返回它传递的x值的函数。如果你不提供一个,那就是将要使用的功能。
@duffymo覆盖它,但这里有一个更长的解释。
你在那里看到的称为匿名函数。该函数基本上返回相同的对象(=什么都不做)。这也可以明确地写成一个命名的功能
newFunction <- function(x) {
x
}
那么这将是
crossval <- function(data, lambda=0, ytrans = newFunction)
这是默认值,就像在lambda=0
,除了默认值是一个函数本身。
从技术上讲,我认为OPs案例中的默认值是来自匿名函数的返回值,而不是函数本身(如果我理解正确的话)。我不明白它的用途,但这将是一个有用的解释。 –
这就是我的意思 - 它返回(相同)的对象,因为它通过。 –
好吧,我想我得到它,让我们说'newFunction'正方形'x',那么你可以做'foo < - function(x,y )y(x)'和'foo(2,newFunction)'返回'4'。 +1 –