web-dev-qa-db-ja.com

NAMESPACEはroxygen2によって生成されません。スキップしました。 -ハドリーブックとの混同

パッケージを作成しようとしていますが、document()を実行すると_NAMESPACE not generated by roxygen2. Skipped._が表示されます関数で_ggplot2,XML, R6_パッケージを使用しようとしています。次の方法でインポートしています。

_#' @rdname visualization
#' @param hist_data A table of weather variables with PWS created by hist_data function
#' @param variable A character string of variable name
#' @examples
#' table <- getWeather(city = "San Francisco", state="CA")
#' please <- getConditionsTable(table, "2015-03-09")
#' tab <- hist_data(table, please)
#' head(tab)
#' plot_variable_across_all_pws(hist_data=tab, variable="tempi")
#' @import ggplot2
#' @import XML
#' @import R6
_

このエラーの原因は何だろうと思います。私のNamespaceにはexportPattern("^[^\\.]")以外は何もありません。

また、私はHadleyによるRパッケージの本 http://r-pkgs.had.co.nz/namespace.html を調べていましたが、次の行で混乱しました:

「roxygen2を使用してNAMESPACEのみ、man/*。Rdのみ、またはその両方を生成することを選択できることに注意してください。名前空間に関連するタグを使用しない場合、roxygen2はNAMESPACEを変更しません。ドキュメントを使用しない場合関連するタグ、roxygen2はman /に触れません。」

これは私が間違っていることですか?または行方不明?

23
hi15
  1. NAMESPACEファイルをバックアップします(将来の使用に必要な場合)。
  2. NAMESPACEファイルを削除する
  3. devtools::document()を実行して、roxygen2がパッケージのソースディレクトリに新しいNAMESPACEファイルを生成するようにします。

*** @exportタグは、Rソースファイルのroxygen2 docセクションにあります。

26
Sathish

devtoolsは、それ自体が生成しなかったDESCRIPTIONファイルとNAMESPACEファイルの上書きを回避しようとしていると思います(rコードに埋め込まれたroxygenコメントを使用するのではなく、自分で綿密に入力した場合の不安を回避します)。常に可能であるとは限りませんが、試みます。

私が理解しているように、主なメカニズムは、ファイルを生成するときにファイルの上部にコメントを投稿し、後でそのコメントを探すことです(たとえば、@includesを使用する場合、エッジの周りに注意が必要です)説明ファイルで照合順序を作成しますが、ここではそれはあなたの問題ではないと思います)。

そのようなコメントの例は

# Generated by roxygen2 (4.1.0.9001): do not edit by hand

not generated by ...メッセージはこれを警告しており、devtoolsroxygen2を使用してNAMESPACEファイルを作成することはありません。 devtools::create()ではなくRStudioを使用してパッケージを開始したため、コメントなしで言及したものがある可能性があります。

NAMESPACEファイルを削除するだけであれば、devtools::document()でうまくいくと思います。

ところで、上記のコード例にはタイプミスがあります(#' @import ggplo2の代わりにhave#' @import ggplot2を使用しています)

14
Geoff

上記の例はどれも私にとってはうまくいきませんでした。 NAMESPACEファイルを削除した場合、roxygenNAMESPACEがないと不満を漏らしました。 NAMESPACEファイルを削除して再作成した場合( `touch、eg RStudio:Building package with roxygen2。Not Production NAMESPACE file )、roxygenはファイルが酸素。

解決策は、roxygenで作成された別のプロジェクトからNAMESPACEファイルをコピーすることでした。

1
jsta

また、NAMESPACEからすべてを単純に削除し、1行追加することもできます:exportPattern("^[[:alpha:]]+")

ファイルNAMESPACEを手動で変更した場合、devtools::document()はこのファイルの上書きに失敗するため、以前のままになります。 NAMESPACEファイルからテキストを削除してこの行を挿入すると、devtools::document()はファイルが新しいものと見なして上書きします。

1
irudnyts