Gibt es eine Möglichkeit zu bestimmen, ob der Text von zwei verschiedenen Funktionen identisch ist?Testen der Gleichheit zweier Funktionen in R
x <- function(x) print(x + 2)
y <- function(x) print(x + 2)
identical(x, y)
[1] FALSE
identical(mget("x"), mget("y"))
[1] FALSE
identical(unname(mget("x")), unname(mget("y")))
[1] FALSE
... und zeigt auch die Unterschiede, sollte es jeder –
Es ist erwähnenswert, dass 'identical' flexiblere Steuerung bereitstellt, wenn Funktionen als der Vergleich„Deparse und vergleichen“von 'all.equal'. In R-devel wird das Argument "ignore.scrcef" hinzugefügt, das bei Angabe von TRUE für "identical (x, y)" den Wert TRUE zurückgibt. Dies kann auch erreicht werden, indem die Attribute "x" und "y" - "identisch" ("attributes <-" (x, NULL), "attributes <-" (y, NULL)) entfernt werden. "Identisch" gibt ein Beispiel für die Flexibilität bei Bytecompiled-Funktionen; 'identisch (x, Compiler :: cmpfun (x))' VS 'identisch (x, Compiler :: cmpfun (x), ignore.bytecode = FALSCH)' VS 'all.equal (x, Compiler :: cmpfun (x)) ' –