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