我有兩個功能,f
和g
,它們具有相同的定義:在R中,我如何測試兩個函數具有相同的定義?
f <- function(x) { x + 1 }
g <- function(x) { x + 1 }
然而,identical
函數考慮他們不同:
identical(f, g)
FALSE
我想這是因爲他們佔據着不同的領域記憶; identical(f, f)
給出TRUE
。
我只對測試具有相同功能定義;還有另外一個功能可以用於這個嗎?
行爲應該是:
sameDefinition(f, f)
TRUE
sameDefinition(f, g)
TRUE
sameDefinition(f, function(x) { x + 1 })
TRUE
sameDefinition(f, function(x) { x + 3 })
FALSE
# Equivalent, but different definitions
sameDefinition(f, function(x) { x + 2 - 1 })
FALSE
你可以試試'all.equal'(發現在閱讀'在看,也有一部分identical'?) – Tensibai
是的,作品。謝謝。 – sdgfsdh
函數不僅僅包含一個主體。除了文字之外,連身體都有其他的東西。如果只想比較正文中的文本,請嘗試'same(as.character(body(g)),as.character(body(f)))' – user20637