Можно ли использовать env ()
в качестве замены пространств имен, и как вы проверяете, существует ли уже среда, прежде чем добавлять в нее функции ?
Это связано с этим вопросом и предложением Брендана Как организовать большие программы R? Я понимаю точку зрения Дирка в этом вопросе, однако для разработки иногда нецелесообразно помещать функции в пакеты.
РЕДАКТИРОВАТЬ: Идея состоит в том, чтобы имитировать пространства имен в файлах и, следовательно, иметь возможность загружать разные файлы независимо. Если файл был ранее загружен, среду не нужно создавать, просто добавляйте в нее.
Спасибо за идеи
РЕДАКТИРОВАТЬ: Предположительно, приведенный ниже код будет эквивалентом пространств имен на других языках: -
# how to use environment as namespaces
# file 1
# equivalent of 'namespace e' if (!(exists("e") && is.environment(e))) { e <- new.env(parent=baseenv()) }
e$f1 <- function(x) {1}
# file 2
# equivalent of 'namespace e' if (!(exists("e") && is.environment(e))) { e <- new.env(parent=baseenv()) }
e$f2 <- function(x) {2}