10 Stimmen

R Quellcode überprüfen

Gibt es eine Möglichkeit, eine Quellcode-Datei in R zu "überprüfen" oder "überprüfen", wenn sie eingebunden wird? Zum Beispiel habe ich diese Funktion in einer Datei "source.R"

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

Beim Einbinden von "source.R" möchte ich eine Art Warnung sehen: MyFunctions bezieht sich auf ein nicht definiertes Objekt Y.

Irgendwelche Hinweise, wie man R-Code überprüfen kann?

Prost!

10voto

flodel Punkte 84903

Ich benutze eine Funktion wie diese zum Scannen aller Funktionen in einer Datei:

critic <- function(file) {

   require(codetools)
   tmp.env <- new.env()
   sys.source(file, envir = tmp.env)
   checkUsageEnv(tmp.env, all = TRUE)

}

Angenommen source.R enthält die Definitionen von zwei eher schlecht geschriebenen Funktionen:

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

MyFunction2 <- function(x, z) {
   a <- 10
   x <- x + 1
   print(x)
}

Hier ist die Ausgabe:

critic("source.R")
# MyFunction: keine sichtbare Bindung für globale Variable 'y'
# MyFunction2: lokale Variable 'a' zugewiesen, aber möglicherweise nicht verwendet
# MyFunction2: Parameter 'x' durch Zuweisung geändert
# MyFunction2: Parameter 'z' wird möglicherweise nicht verwendet

5voto

Dirk Eddelbuettel Punkte 345316

Sie können dazu das Paket codetools in base R verwenden. Und wenn Ihr Code in einem Paket wäre, würde es Ihnen darüber Bescheid geben:

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X