【问题标题】:R verify source codeR验证源代码
【发布时间】:2012-08-15 07:57:13
【问题描述】:

在获取源代码文件时,是否有任何方法可以“检查”或“验证”R 中的源代码文件? 例如,我在文件“source.R”中有这个函数

MyFunction <- function(x)
{
print(x+y)
}

在采购“source.R”时,我希望看到某种警告:MyFunctions refers to an undefined object Y.

关于如何检查/验证 R 代码的任何提示?

干杯!

【问题讨论】:

    标签: r verification


    【解决方案1】:

    我使用类似这样的函数来扫描文件中的所有函数:

    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
    

    【讨论】:

      【解决方案2】:

      您可以为此使用 base R 中的 codetools 包。如果您将代码放在一个包中,它会告诉您:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-18
        • 2011-01-05
        • 2012-10-07
        相关资源
        最近更新 更多