簡體   English   中英

描述順序導入:和R 2.14.0包檢查中的NAMESPACE import()

[英]Order of DESCRIPTION Imports: and NAMESPACE import() in R 2.14.0 package checking

我試圖在檢查包時追逐功能名稱之間的沖突。 我最終可能會直接詢問這個問題,但首先,我想知道三件事情,R-exts中似乎都沒有提及:

  1. DESCRIPTION:Imports和NAMESPACE導入()中列出的包應該是相同的,對吧?
  2. 在任何一個列表中,導入的順序是否重要? 如果是的話,是否有關於如何訂購的一般建議?
  3. 我使用R --vanilla CMD檢查pkg_name以避免我的.Rprofile干擾。 當我的.Rprofile處於活動狀態並包含庫(pkg_name)語句時,這些語句的順序是否重要?

你問了三個問題。

1.列出DESCRIPTIONNAMESPACE

DESCRIPTION Imports:列出的每個包都必須具有匹配的條目NAMESPACE import(...) DESCRIPTION的條目可能包含版本信息,但在NAMESPACE您只能命名包。

注意粗心:拼寫Imports資本I和尾s的說明

例如:

描述

Imports:
    stringr (>= 0.5)

NAMESPACE

import(stringr)

2.訂單事宜

您稍后loadimport軟件包會屏蔽先前加載或導入的軟件包。 這僅在導入導出具有相同名稱的函數的包時才有意義。

例如, latticeggplot2導出layer函數。 因此,如果您首先導入lattice然后導入ggplot2 ,則意味着ggplot2::layer將屏蔽lattice::layer

換句話說,使用layer將引用ggplot2::layer 如果要引用lattice版本,則需要在函數中顯式引用lattice::layer

3.加載包的順序也很重要

出於同樣的原因,加載包的順序(在腳本或.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM