有没有办法测试R语言中两个对象是否相同?
为清晰起见:在identical
函数意义上,我的意思并不相同,
它根据某些属性(如数值或逻辑值等)比较对象。
我对对象标识非常感兴趣,例如可以使用Python语言中的is
运算符进行测试。
答案 0 :(得分:24)
更新:在data.table v1.8.9中添加了address(x)
(不使用.Internal(inspect(x))
)更强大,更快速的实施。来自NEWS:
新函数
address()
返回其参数的RAM中的地址。有时用于确定R是否以编程方式复制了值。
可能有一种更简洁的方式,但这似乎有效。
address = function(x) substring(capture.output(.Internal(inspect(x)))[1],2,17)
x = 1
y = 1
z = x
identical(x,y)
# [1] TRUE
identical(x,z)
# [1] TRUE
address(x)==address(y)
# [1] FALSE
address(x)==address(z)
# [1] TRUE
您可以将17
更改为9
,将其修改为32位。
答案 1 :(得分:2)