采购R时,是否有任何方法可以“检查”或“验证” R中的源代码文件?
例如,我在文件“source.R”中具有此功能
MyFunction <- function(x)
{
print(x+y)
}
当采购“source.R”时,我希望看到某种警告:
MyFunctions refers to an undefined object Y.
关于如何检查/验证R代码的任何提示?
干杯!
最佳答案
我使用像这样的函数来扫描文件中的所有函数:
critic <- function(file) {
require(codetools)
tmp.env <- new.env()
sys.source(file, envir = tmp.env)
checkUsageEnv(tmp.env, all = TRUE)
}
假设
source.R
包含两个相当不好编写的函数的定义:MyFunction <- function(x) {
print(x+y)
}
MyFunction2 <- function(x, z) {
a <- 10
x <- x + 1
print(x)
}
这是输出:
critic("source.R")
# MyFunction: no visible binding for global variable ‘y’
# MyFunction2: local variable ‘a’ assigned but may not be used
# MyFunction2: parameter ‘x’ changed by assignment
# MyFunction2: parameter ‘z’ may not be used
关于R验证源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12030005/