パッケージ環境と非パッケージ環境オブジェクトをプログラムで区別する方法はありますか? たとえば、以下のオブジェクトx
はy
両方とも環境であり、クラスと属性は同じです。
x <- as.environment(cars)
y <- getNamespace("graphics")
ただし、方法から判断するprint
と、違いがあります。
> print(x)
<environment: 0x1d38118>
> print(y)
<environment: namespace:graphics>
ここで、任意のオブジェクトがあるとします。2 つのオブジェクトのどちらであるかを (の出力を見ずにprint
) 判別するにはどうすればよいでしょうか? オブジェクトをディスクに保存する方法を決定するために、これを知りたいです。前者の場合、環境 (およびおそらくその親) のリスト表現を保存する必要がありますが、後者の場合は、パッケージの名前とバージョンを保存するだけです。