![](/img/trans.png)
[英]What is `.__DEVTOOLS__.` environment in R package namespace?
[英]How to distinguish package namespace environment from other environment objects
有沒有辦法以編程方式區分包環境和非包環境對象? 例如,下面的對象x
和y
都是環境,具有相同的類和屬性。
x <- as.environment(cars)
y <- getNamespace("graphics")
但是從print
方法來看,存在差異:
> print(x)
<environment: 0x1d38118>
> print(y)
<environment: namespace:graphics>
現在假設我有一個任意對象,我如何確定它中的哪一個(不查看print
的輸出)? 我想知道這個,以確定如何將對象存儲在磁盤上。 在前者的情況下,我需要存儲環境的列表表示(可能還有它的父節點),但對於后者,我只存儲包的名稱和版本。
isNamespace
?
isNamespace(y)
# [1] TRUE
isNamespace(x)
# [1] FALSE
並且,為了將來參考,當你有這樣的問題時, apropos
通常很有幫助。
apropos("namespace")
# [1] "..getNamespace" ".BaseNamespaceEnv" ".getNamespace"
# [4] ".methodsNamespace" "asNamespace" "assignInMyNamespace"
# [7] "assignInNamespace" "attachNamespace" "fixInNamespace"
# [10] "getFromNamespace" "getNamespace" "getNamespaceExports"
# [13] "getNamespaceImports" "getNamespaceInfo" "getNamespaceName"
# [16] "getNamespaceUsers" "getNamespaceVersion" "isBaseNamespace"
# [19] "isNamespace" "loadedNamespaces" "loadingNamespaceInfo"
# [22] "loadNamespace" "namespaceExport" "namespaceImport"
# [25] "namespaceImportClasses" "namespaceImportFrom" "namespaceImportMethods"
# [28] "packageHasNamespace" "parseNamespaceFile" "requireNamespace"
# [31] "setNamespaceInfo" "unloadNamespace"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.