我有一个提供脚本和一些功能的包装。在脚本中,我分配了一个将由函数使用的变量。如果该函数在脚本中执行,则可以使用此方法,但是由于变量不存在,如果我仅调用该函数,则可能会失败。
如果我使用devtools::check()
会收到警告,说明函数中的变量未定义。我该如何正确处理?
我正在考虑在函数内使用get()
在函数内分配变量以摆脱此警告。所以问题是myp2
是做这样事情的正确方法吗?也许有些trycatch
可以处理错误?
ab <- c(1,2,3)
myp1 <- function() {
print(ab)
return(1)
}
myp2 <- function() {
ab <- get('ab')
print(ab)
return(1)
}
myp1()
myp2()
答案 0 :(得分:0)
您可以做类似
的操作if(!exists("your variable")){
stop("You have not defined your variable")}
这将检查您要查找的内容是否存在。更好的做法是在函数中定义变量,并使用默认值作为要查找的事物的名称。
答案 1 :(得分:0)
myp <- function(x) {
print(x)
return(1)
}
ab <- c(1,2,3)
myp(x = ab)
如果可能的话,最好用函数代替脚本。