1

私は2つの機能をもう一方の中に持っています

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。しかし、 in !zを使用すると値を渡すことができません。sapplyfun.a

外部にも存在するオブジェクトを関数内に作成できる関数が存在するのではないでしょうか? この問題を解決するには?

編集:fun.b内部に貼り付けをコピーしたくないし、fun.aに置き換えたくありません。そのような場合、解決策はまだ存在しますか?sapplyfor-loop

4

2 に答える 2

2

これは機能します。...引数を使用して、追加の値をに渡しますfun.b

fun.a <- function (y,smth) { 
    z <- y*3
    sapply(smth,FUN = fun.b, z = z) 
}
fun.b <- function(x, z) {
    return(x+z)
}
fun.a(2, c(1, 2, 3))
于 2013-03-31T11:55:48.050 に答える