У меня есть функция, задача которой - создать переменную в родительском объекте. Я хочу, чтобы функция создавала переменную на том уровне, на котором она была вызвана.R Программирование - создает переменную в среде, в которой она была вызвана
createVariable <- function(var.name, var.value) {
assign(var.name,var.value,envir=parent.frame())
}
# Works
testFunc <- function() {
createVariable("testVar","test")
print(testVar)
}
# Doesn't work
testFunc2 <- function() {
testFunc()
print(testVar)
}
> testFunc()
[1] "test"
> testFunc2()
[1] "test"
Error in print(testVar) : object 'testVar' not found
Мне интересно, есть ли способ сделать это, не создавая переменную в области глобальной среды.
Редактировать: Есть ли способ модульной проверки того, что переменная была создана?
Есть ли какой-либо способ модульной проверки того, что переменная была создана с помощью testthat? – Shuo
вы можете использовать 'exists (" testVar ")' – NicE