有没有办法在编程中区分包环境和非包环境对象?例如,下面的对象x和y都是环境,具有相同的类和属性。
然而从
x <- as.environment(cars)
y <- getNamespace("graphics")
然而从
print
方法来看,有所不同:> print(x)
<environment: 0x1d38118>
> print(y)
<environment: namespace:graphics>
现在假设我有一个任意的对象,我该如何确定它是其中的哪一个(不查看print
的输出)?我希望知道这个以便决定如何将对象存储到磁盘上。如果是前者,我需要存储环境的列表表示(可能还包括其父级),但对于后者,我只需存储软件包的名称和版本号。