5

我有一个名为的大型ExpressionSet对象 ( Bioconductor ) eset。你能解释为什么会这样吗?为什么保存/加载后对象的副本与原始副本不同?

> e2=eset
> identical(e2,eset)
[1] TRUE
> save(e2,file="test.RData")
> rm(e2)
> e2 # just to check the removal
Error: object 'e2' not found
> load("test.RData")
> identical(e2,eset)
[1] FALSE

还有其他方法可以检查两个对象的身份吗?

如果需要,我正在 Windows 7 下使用 R 2.15.1。

4

1 回答 1

8

环境是少数 R 对象类型之一(连接是另一种),其保存和加载并不是完全相反的。

e <- new.env()
f <- e
identical(e,f)
# [1] TRUE
save("f", file="f.Rdata")
rm(f)
load("f.Rdata")
identical(e,f)
# [1] FALSE

ExpressionSet对象包含一个assayData槽,类AssayData,它被描述为“定义为和的类联合的容器类listenvironment。虽然我的电脑上没有安装eset,但我猜想 和 的插槽assayData引用了不同的环境,导致返回.esete2identical(eset, e2)FALSE

于 2013-03-28T17:38:20.633 回答