Подтвердить что ты не робот

R проверить исходный код

Есть ли способ "проверить" или "проверить" файл исходного кода в R при его поиске? Например, у меня есть эта функция в файле "source.R"

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

При поиске "source.R" я хотел бы увидеть какое-то предупреждение: MyFunctions refers to an undefined object Y.

Любые подсказки о том, как проверить/проверить R-код?

Ура!

4b9b3361

Ответ 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

Для этого вы можете использовать пакет codetools в базе R. И если бы у вас был ваш код в пакете, он расскажет вам об этом: