Вероятно, простой вопрос, но я не могу понять это сам, работая с окружающей средой и показом, все еще путают меня.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
Кроме того, что, если у меня есть функция, вложенной в функции, вложенной в функции, вложенной в функции и т.д., и я хочу, чтобы выбрать, в какой верхний уровень, чтобы присвоить значение от функции самого низкого уровня?
Что такое переменная 'y' в' function (m) '? –
@Carles Mitjans: 'y' принимает значение 2, определенное в функции' f1'. – panman
В первой строке 'myfun', где' m * 3 * y', 'y' не определено, поэтому вы получаете эту ошибку. –