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 –