[英]Order of DESCRIPTION Imports: and NAMESPACE import() in R 2.14.0 package checking
我試圖在檢查包時追逐功能名稱之間的沖突。 我最終可能會直接詢問這個問題,但首先,我想知道三件事情,R-exts中似乎都沒有提及:
你問了三個問題。
DESCRIPTION
和NAMESPACE
DESCRIPTION
Imports:
列出的每個包都必須具有匹配的條目NAMESPACE
import(...)
。 DESCRIPTION
的條目可能包含版本信息,但在NAMESPACE
您只能命名包。
注意粗心:拼寫Imports
資本I
和尾s
的說明
例如:
描述
Imports:
stringr (>= 0.5)
NAMESPACE
import(stringr)
您稍后load
或import
軟件包會屏蔽先前加載或導入的軟件包。 這僅在導入導出具有相同名稱的函數的包時才有意義。
例如, lattice
和ggplot2
導出layer
函數。 因此,如果您首先導入lattice
然后導入ggplot2
,則意味着ggplot2::layer
將屏蔽lattice::layer
。
換句話說,使用layer
將引用ggplot2::layer
。 如果要引用lattice
版本,則需要在函數中顯式引用lattice::layer
。
出於同樣的原因,加載包的順序(在腳本或.Rprofile中)很重要。 您加載的任何新包將在先前加載的包中屏蔽具有相同名稱的函數。
當發生這種情況時,R會做出明智的事情並在控制台消息中告訴您。
下面是加載reshape
包時發生的屏蔽示例,它取決於plyr
但也會屏蔽plyr
某些函數:
library(reshape)
Loading required package: plyr
Attaching package: 'plyr'
The following object(s) are masked from 'package:braidppt':
.
Attaching package: 'reshape'
The following object(s) are masked from 'package:plyr':
rename, round_any
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.