79

Rパッケージを作成しようとしているので、CRANのマニュアルを読んでいます。インポートを使用して名前空間に関数をロードすることが、説明ファイルで使用するのに最適であることがわかりました。説明ファイルに追加した後、名前空間ファイルにも追加しました。必要な関数を含む名前空間ファイルにimportFromを追加しました。

パッケージでRCMDチェックを実行すると、次のようなエラーが発生します。

名前空間の依存関係は必要ありません:'ggplot2'

詳細情報:説明ファイルのDependsにパッケージを追加しても、ロードされません。

これを手伝ってください。

以下の私の説明ファイルを見つけてください

Package: bigpackage
Type: Package
Title: Some title
Version: 1.0
Date: 2012-10-25
Author: Mayank Bansal
Maintainer: somename
Imports : R(>= 2.15.1), SweaveListingUtils( >=0.5.5),xtable(>=1.7-0),
        brew(>=1.0-6), knitr(>=0.8), RHive(>= 0.0-6), ggplot2(>=0.9.2)
        , brew, knitr
SystemRequirements : LaTeX(texi2dvi) must be present in the system to
        create PDF reports
Description: Some Description
License: file LICENSE
LazyLoad: yes
ByteCompile: true
OS_type : unix
4

2 に答える 2

101

importまたはNAMESPACEファイルを使用する場合importFromは、DESCRIPTIONファイルのImportsセクションにそのパッケージのエントリが必要です(Dependsを使用する必要がある理由がない限り、その場合、パッケージにはDependsにエントリが必要です。インポートではありません)

これは、 R拡張機能の作成の関連セクションです。

[インポート]フィールドには、名前空間がインポート元(NAMESPACEファイルで指定されている)であるが、アタッチする必要がないパッケージが一覧表示されます。'::'および':::'演算子によってアクセスされる名前空間は、ここ、または'Suggests'または'Enhances'にリストされている必要があります(以下を参照)。理想的には、このフィールドには使用されるすべての標準パッケージが含まれ、S4を使用するパッケージを含めることが重要です(クラス定義は変更される可能性があり、DESCRIPTIONファイルはこれが発生したときに再インストールするパッケージを決定するために使用されます)。「依存」フィールドで宣言されたパッケージは、「インポート」フィールドにも含めるべきではありません。


単一の機能でパッケージを作成しましたfimportFrom私はあなたがあなたのものに持っているとあなたが言うのと同じ行でNAMESPACEファイルを作りました。

名前空間ファイル

export("f")
importFrom("ggplot2","ggplot","geom_histogram")

この時点で、R CMD check期待どおりに実行すると、エラーが発生します。

名前空間の依存関係は必要ありません:'ggplot2' </ p>

しかし、Imports: ggplot2DESCRIPTIONファイルが次のようになるようにDESCRIPTIONに追加すればR CMD check、問題なく通過します。

説明ファイル

Package: anRpackage
Type: Package
Title: What the package does (short line)
Version: 1.0
Date: 2012-11-07
Author: Me
Maintainer: Who to complain to <yourfault@somewhere.net>
Description: More about what it does (maybe more than one line)
License: GPL
Imports: ggplot2
于 2012-11-06T23:36:00.973 に答える
9

@importこれが発生する可能性がある単純な理由は、関数のいずれかまたはすべてで宣言するときに誤ってコンマを使用した場合です。

例:

#'
#' @import rvest, dplyr, stringr, jsonlite
#'
#' @export
#'

これに変更する必要があります

#'
#' @import rvest dplyr stringr jsonlite
#'
#' @export
#'

パッケージDESCRIPTIONファイル内でコンマで区切られているため、これは一般的なエラーです。

于 2019-09-02T06:35:59.367 に答える