おそらく簡単な質問ですが、自分自身で把握することはできません。R:上位レベルの関数に値を代入する
私は関数にネストされた関数を持っています。私は何を達成しようとしていることは、その親でネストされた関数から(私は<<-
を使用すると危険なことができることを読んだことがあるassign
機能を使用して、)値を割り当て、そこにそれを使用することです:
myfun <- function(m) {
m*3*y
f1 <- function() {
assign(x = y, value = 2, envir = parent.frame())
}
f1()
}
しかし、エラーがありますまた
Error in myfun(m = 5) : object 'y' not found
を、私は等の機能にネストされた関数内でネストされた関数内でネストされた関数を、持っている、と私は選択したい場合は、上のレベルに値を割り当てるためにするものを:返さ最低レベルの関数から?
'function(m)'の変数 'y'とは何ですか? –
@Carles Mitjans: 'y'は、関数f1で定義された2の値をとります。 – panman
'myfun'の' m * 3 * y'の最初の行に 'y'が定義されていないので、そのエラーが発生します。 –