Этот вопрос возникает из ряда других вопросов, которые касаются, по сути, одной и той же проблемы. По какой-то странной причине использование функции в другой функции иногда дает сбой в том смысле, что переменные, определенные в локальной среде первой функции, не обнаруживаются во второй функции.
Классический паттерн в псевдокоде:
ff <- function(x){
y <- some_value
some_function(y)
}
ff(x)
Ошибка в eval (expr, envir, enclos): объект 'y' не найден
Сначала я подумал, что это как-то связано с методами S4 и их областью видимости, но то же самое происходит и с другими функциями. У меня было некоторое взаимодействие с командой разработчиков R, но все, что они сделали, это направили меня на сайт отчетов об ошибках (который, я должен сказать, не самый привлекательный). Я никогда не получал отзывов.
Поскольку проблема все время возникает, мне интересно, есть ли ей логическое объяснение. Является ли это распространенной ошибкой во всех этих случаях, и если да, то в каком? Или это действительно ошибка?
Некоторые из этих вопросов:
- Использование функций и сред
- Ошибка определения объема R (статистическая) с использованием transformBy () , часть пакета doBy.
- Как использовать acast (reshape2) в функции в R ?
- Почему я не могу передать набор данных функции? а>
- Значения не копируются в следующую локальную среду
PS: Я знаю список R-devel, если вам интересно ...