2013-09-04 9 views
10

私はRStudioを使用して独自のパッケージを構築する方法を学んでいます。パッケージの現在の.tar.gzSteenSubsSpec)はhereです。現在Build & Reloadコマンドがビルドされているようです&パッケージを正常にRoxygenizeします。ただし、Build & Reloadが正常にドキュメントを更新したにもかかわらず、関数がメモリに読み込まれているようには見えません。私は間違って何をしていますか?関数はhomebuiltパッケージからロードされていません

Build & Reloadは、次の出力を与える:変更をチェック

==> roxygenize('.', roclets=c('rd')) 
  • を...

DONE ==> R CMD SteenSubsSpec

* checking for file ‘SteenSubsSpec/DESCRIPTION’ ... OK 
* preparing ‘SteenSubsSpec’: 
* checking DESCRIPTION meta-information ... OK 
* excluding invalid files 
Subdirectory 'R' contains invalid file names: 
    ‘2013_08_30_report-concordance.tex’ ‘2013_08_30_report.Rnw’ 
    ‘2013_08_30_report.log’ ‘2013_08_30_report.pdf’ 
    ‘2013_08_30_report.synctex.gz’ ‘2013_08_30_report.tex’ 
* checking for LF line-endings in source and make files 
* checking for empty or unneeded directories 
Removed empty directory ‘SteenSubsSpec/inst’ 
* building ‘SteenSubsSpec_1.0.tar.gz’ 

Source package written to ~/Dropbox/[my directory] 

を構築これは、ドキュメントを更新:?write_paper()は現在のドキュメントを表示します期待どおりのアトリオン。しかし

require(SteenSubsSpec) 
write_paper() 

が正しいように見えるError: could not find function "write_paper"

いくつかのもの与えます:

  • すべての関数ファイルはRディレクトリにあり、その定義と同じ名前を持つ(例えば/R/write_paper.Rwrite_paper() <- function {...を定義します
  • DESCRIPTIONファイルには、すべての関連する関数ファイルの名前が含まれています。Collate: ... 'write_paper.R

どうすればこの問題を解決できますか?

+0

関数をエクスポートして名前空間で使用できるようにしましたか? 'SteenSubsSpec ::: write_paper()'でアクセスできますか? – A5C1D2H2I1M1N2O1R2T1

+0

私は推測していない - 私は本当にその意味がわからないが、グーグルが始まるだろう。 NAMESPACEファイルは空であることに注意してください。 –

+1

それはおそらく問題になるでしょう:) – A5C1D2H2I1M1N2O1R2T1

答えて

9

ほとんどの場合、関数はNAMESPACEファイルにエクスポートされません(現在は空です)。

RStudioでは、「プロジェクトオプション」の「ビルドツール」の下で、「Genericate roxygen with documentation」がオンになっていることを確認します。次に、 "configure"をクリックします。 「roxygenを使用してNAMESPACEファイルを生成する」もオンになっていることを確認します。

Rファンクションファイルに@export yourfunctionname(または、技術的には#' @export yourfunctionname)を追加します。ビルドして再ロードするときに、NAMESPACEファイルを更新して機能をもはや不可視にする必要がありません。

関連する問題