Ответ 1
Объекты graph
и graph2
содержат среды, и каждый раз, когда создается среда, она отличается, даже если она содержит одни и те же значения. R являются идентичными, если они имеют одинаковое содержимое, но в отличие от сред списков имеют идентификатор объекта. Попробуйте:
dput(graph)
дает следующее, которое включает среды, обозначенные <environment>
в выводе dput
: (продолжение после выхода)
...snip...
), class = "factor")), .Names = c("Sepal.Length", "Sepal.Width",
"Petal.Length", "Petal.Width", "Species"), row.names = c(NA,
-150L), class = "data.frame"), layers = list(), scales = <environment>,
mapping = structure(list(x = Species, y = Sepal.Length), .Names = c("x",
"y"), class = "uneval"), theme = list(), coordinates = <environment>,
facet = <environment>, plot_env = <environment>, labels = structure(list(
x = "Species", y = "Sepal.Length"), .Names = c("x", "y"
))), .Names = c("data", "layers", "scales", "mapping", "theme",
"coordinates", "facet", "plot_env", "labels"), class = c("gg",
"ggplot"))
Например, рассмотрим:
g <- new.env()
g$a <- 1
g2 <- new.env()
g2$a <- 1
identical(as.list(g), as.list(g2))
## [1] TRUE
all.equal(g, g2)
## [1] TRUE
identical(g, g2)
## [1] FALSE