sách gpt4 ai đã đi

Tại sao hai đối tượng ggplot vượt qua bài kiểm tra all.equal() nhưng lại không vượt qua bài kiểm tra same()?

In lại 作者:行者123 更新时间:2023-12-03 11:41:38 28 4
mua khóa gpt4 Nike

我想测试ggplot生成的两个图是否相同。一种选择是在绘图对象上使用all.equal,但我宁愿进行更艰巨的测试以确保它们相同,这似乎是identical()为我提供的东西。

但是,当我测试使用相同dữ liệu和相同aes创建的两个绘图对象时,我发现all.equal()将它们识别为相同,而对象未通过identical测试。我不确定为什么,也想了解更多。

基本示例:

graph <- ggplot2::ggplot(data = iris, aes(x = Species, y = Sepal.Length))
graph2 <- ggplot2::ggplot(data = iris, aes(x = Species, y = Sepal.Length))

all.equal(graph, graph2)
# [1] TRUE

identical(graph, graph2)
# [1] FALSE

1 Câu trả lời

graphgraph2对象包含环境,并且每次生成环境时,即使拥有相同的值,环境也不同。如果R列表具有相同的内容,则它们是相同的。可以这样说:环境除了其值之外还具有对象标识,而列表的值构成列表的标识。尝试:

dput(graph)
给出以下内容,其中包括在 输出中由 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 = ,
mapping = structure(list(x = Species, y = Sepal.Length), .Names = c("x",
"y"), class = "uneval"), theme = list(), coordinates = ,
facet = , plot_env = , 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) # the values are the same
## [1] TRUE

identical(g, g2) # but they are not identical
## [1] FALSE

关于r - 为什么两个ggplot对象通过all.equal()测试,但未通过same()测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48053137/

28 4 0
Bài viết được đề xuất: Kubernetes - 在服务的端口中是什么意思?
Bài viết được đề xuất: Django migrate --fake 和 --fake-initial 解释
Bài viết được đề xuất: php - composer global 需要 laravel/installer
Bài viết được đề xuất: latex - 在LaTeX中,如何在文档类Letter中添加页眉/页脚?
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com