f <- function(a) {
g <- function(a=a) {
return(a + 2)
}
return(g())
}
f(3) # Error in a + 2: 'a' is missing
原因的錯誤?它與a =一個參數有關,特別是與變量名稱相同的事實。究竟發生了什麼?
這裏有一些相似的代碼塊按預期工作:
f <- function(a) {
g <- function(a) {
return(a + 2)
}
return(g(a))
}
f(3) # 5
f <- function(a) {
g <- function(g_a=a) {
return(g_a + 2)
}
return(g())
}
f(3) # 5
g <- function(a) a + 2
f <- function(a) g(a)
f(3) # 5
和R 3.1.1中的錯誤信息是'g中的錯誤(): 諾言已經在評估中:遞歸默認參數引用或更早的問題? ' – Roland 2014-10-27 17:01:52
這比我看到的錯誤消息更有幫助(錯誤:缺少'a')。我有R版本3.0.2(2013-09-25) - 「飛盤帆船」 – Adrian 2014-10-27 17:29:23