2013-10-29 58 views
2

代码如下函数参数列表中的函数(x)在R中意味着什么?

crossval <- function(data, lambda=0, ytrans=function(x) x) 

我想知道在函数参数列表有什么功能(X)意味着什么呢?如果一次又一次或东西调用同一个功能?如果是这样,有可能调用函数crossval本身吗?我需要变量ytrans吗?我们不能只调用函数体中的函数(x)吗?

回答

1

默认函数是返回它传递的x值的函数。如果你不提供一个,那就是将要使用的功能。

2

@duffymo覆盖它,但这里有一个更长的解释。

你在那里看到的称为匿名函数。该函数基本上返回相同的对象(=什么都不做)。这也可以明确地写成一个命名的功能

newFunction <- function(x) { 
    x 
} 

那么这将是

crossval <- function(data, lambda=0, ytrans = newFunction) 

这是默认值,就像在lambda=0,除了默认值是一个函数本身。

+0

从技术上讲,我认为OPs案例中的默认值是来自匿名函数的返回值,而不是函数本身(如果我理解正确的话)。我不明白它的用途,但这将是一个有用的解释。 –

+0

这就是我的意思 - 它返回(相同)的对象,因为它通过。 –

+0

好吧,我想我得到它,让我们说'newFunction'正方形'x',那么你可以做'foo < - function(x,y )y(x)'和'foo(2,newFunction)'返回'4'。 +1 –

相关问题