为什么两个ggplot对象通过all.equal()测试,但是不能通过same()测试?

时间:2018-01-01 20:48:53

标签: r ggplot2 equality

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

但是,当我测试使用相同 data相同 aes创建的两个绘图对象时,我发现{{ 1}}将它们识别为相同,而对象未通过all.equal()测试。我不确定为什么,我想要了解更多。

基本示例:

identical

1 个答案:

答案 0 :(得分:23)

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let meme = memes[indexPath.row] let detailController = UIStoryboard(name: "DetailsStoryboard", bundle: nil).instantiateViewController(withIdentifier: "DetailsCollectionViewCell") as! DetailsCollectionViewCell present(detailController, animated: true, completion: nil) detailController.detailsImageView.image = meme.memedImage } graph对象包含环境,每次生成环境时,即使它具有相同的值,它也是不同的。如果R列表具有相同的内容但是列表环境具有对象标识,则R列表是相同的。尝试:

graph2

提供以下内容,其中包括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"))