我有兩個功能,一個接一個的功能使用更高級別的功能
fun.a <- function (y,smth) {
z <- y*3
sapply(smth,FUN = fun.b)
}
fun.b <- function(x) {
return(x+z)
}
內部創建一個對象。如果我運行:
fun.a(2, c(1, 2, 3))
因爲z
不存在我得到一個錯誤信息「低級」功能fun.b
。但在fun.a
中使用sapply
時,我無法通過值z
!
也許它存在一個允許在函數內部創建一個存在於外部的對象的函數?如何解決這個問題呢?
編輯:我不想裏面複製粘貼fun.a
和fun.b
我不想用for-loop
更換sapply
。在這種情況下,解決方案是否仍然存在?
'z'在'fun.a'的範圍內。你必須用兩個參數'x和y'來定義'fun.b'。或者在fun.a中聲明'fun.b'。 – Arun
@ Arun。聲明fun.b在fun.a裏面?我該如何做這樣的事情? –
@Arun Aahh你的意思是在函數fun.a中創建fun.b函數。如果我這樣做會工作嗎?因爲我不能將fun.a中的兩個元素傳遞給fun.b,因爲我想使用sapply函數 –