为什么E(g)不等于它本身

问题描述 投票:0回答:1

考虑:

library(igraph)
g <- make_ring(3)

identical(g, g)    # TRUE as expected
# [1] TRUE

dput(E(g))
# structure(1:3, is_all = TRUE, class = "igraph.es", env = <weak reference>, graph = "4f82a4da-3975-11ef-8958-675a79d1d14f")


E(g) == E(g)              # test equality.
# [1] TRUE TRUE TRUE

all.equal(E(g), E(g))     # Next try.     
# [1] TRUE

identical(E(g), E(g), ignore.environment = FALSE) # Expecting TRUE.
# [1] FALSE

identical(E(g), E(g), ignore.environment = TRUE) # Expecting TRUE.
# [1] FALSE

问题:为什么是假的?

r igraph
1个回答
0
投票

我推测

identical
会给出
False
,因为
E(g)
在第一次和第二次调用之间被分配了不同的地址,例如

> library(data.table)

> address(E(g))
[1] "000001a51697f368"

> address(E(g))
[1] "000001a516666e68"
© www.soinside.com 2019 - 2024. All rights reserved.