2016-09-08 14 views
-1

私はパッケージに追加しようとしている機能を持っています。私はdevtools::document()でドキュメントを生成しています。これと〜70の他の関数の.Rdファイルは正常に生成されますが、この1つの関数は名前空間に追加されません。機能がNAMESPACEに追加されていません

このファイルは次のリンクにあります。重要なのはtruncate.distribution.rです。私は名前にピリオドの付いた他の多くの機能を持っているので、問題ではないことはほとんど確信しています。

しかし、私はNAMESPACEを通過していたので、この行に気付いたので、似た名前が偶然であったかどうかを疑問に思った。私は名前からピリオドを削除して、ドキュメントとNAMESPACEを再作成してみましたが、すべて正常に機能しました。つまり、関数はパッケージと共にエクスポートされます。

改ざんされた名前が機能するのに対して、私はそれがなぜ失敗したのか、そして今後同様の失敗を防ぐ方法を学びたいと思います。また、私は元の名前が好きです。 :)

誰でも意見はありますか?とても有難い。

+1

ちょうどメモ:これらのタイプの名前にはピリオドの代わりにハイフン(truncate-distribution.r)を使用することをお勧めします。 –

+4

...ドットは 'S3methods(...)'と解釈される関数につながるためです。要するに、「しないでください」。 –

+0

ハイフンですか?私はアンダースコアを推測していただろう。ハイフンは、パーサによって「マイナス記号」として解釈されます。 –

答えて

0

あなたは正しいので、名前のピリオドと関係があります。私たちのために問題を引き起こす特定のファイルは、名前の最初の部分( "truncate。" ...)が既に基本関数であったため、S3メソッドとして解釈されていました。

すべての方に感謝します。なぜ私が投票されたのか分かりません。機能名にピリオドを使用しないことは、固有の知識ではなく、私が見ている場所では明示的に禁じられていません(つまりHadley's、またはGoogle'sスタイルガイド)。

関連する問題