6
2つの異なる関数のテキストが同一であるかどうかを判断する方法はありますか? diffobj
パッケージ使用2つの関数の等価性のテスト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
...とも違いが表示されます、のいずれかの –
それは機能を比較するとき、 'identical'は、より多くの柔軟な制御を提供することは注目に値します「逆パースとの比較」が次のようになります。それは、多くの異なるオブジェクトのために働きます'all.equal'。 R-develでは、「ignore.srcref」引数が追加されます。これは、TRUEに設定されている場合、「同一(x、y)」に対してTRUEを返します。これは、 "x"と "y" - 属性(属性< - "(x、NULL)"、属性< - "(y、NULL))'の属性を削除することによっても達成できます。 '?identical'は、バイトコンパイルされた関数の柔軟性の例も示しています。 (x、compiler :: cmpfun(x)、ignore.bytecode = FALSE) 'VS' all.equal(x、compiler :: cmpfun(x) ) ' –