問題タブ [roxygen2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 同名の関数を含むパッケージをインポートする際のパッケージ作成のベスト プラクティス
ここでrmetadata というパッケージを作成しています。このパッケージの目的は、学術出版物/メタデータに関する多くのデータ ソースのOAI-PMHサービスにリクエストを行うことです。私は他のパッケージ (rpmc、rdatacite など) を作成しました。これらの関数は、各パッケージで同じことを行うため一貫性を保つために、同じ名前の関数を持っていますが、データ ソースが異なります。
rmetadata のインストールについて
次のような多くの警告が表示されます
私は何をすべきか?rmetadata が呼び出す各パッケージ内の関数の名前を変更する必要がありますか? たとえば、identify は rdryad では dryad_identify になり、identify は rdatacite では datacite_identify になります。
または、他の何か?
r - Rパッケージの開発にデータ例を含める
次のような関数の上に書かれたコメントとしてデータ例を組み込む方法を学びたいと思っています。
「data.txt」ファイルをディレクトリ/pkg_Name/ inst /extdata/に置きます。ただし、R CMDチェックは、このステップでエラーを示します。RCMDビルドとRCMDインストールに進むと、パッケージをロードした後、データをRセッションに取り込むことができません...誰かが何が悪かったのか教えてもらえますか?これは、関数ヘルプドキュメントの最後にデータ例を含める正しい方法ですか?
どうもありがとう!
r - ソースコードを複数のファイルから(Roxygen)コメントを含む単一のファイルに効率的に統合する
質問
複数のソースファイルから単一のソースファイルにソースコードを統合する効率的な方法は何ですか?Roxygenドキュメントのコメントを含み、場合によっては他のコメントも含みますか?
コメントを説明する(属性「フィールド」に入れる)パッケージの解析メソッドがあったことを覚えていますが、もう見つかりません。
背景情報
主に2つの理由から、特定の数のソースファイルから単一のソースファイルにソースコードを統合する柔軟性が気に入っています。
- 頭を上げ続けるために、私は「ファイルごとに1つの定義」パラダイムに固執しています。このパラダイムでは、各ソースファイルに正確に1つの定義(関数、S4メソッド、S4参照クラスなど)が含まれています。また、これらのソースファイルは、私の「ソースディレクトリ」のさまざまなサブディレクトリに保存されている可能性があり、したがって同じファイル名を持っている可能性もあります。ただし、真のRパッケージをまとめるには、複数のdefを1つのソースファイルにグループ化する方がよい場合があります。重複したファイル名の場合、私もそうする必要があります。
- 並列化する場合、必要なすべてのソースコードを1つのファイルにグループ化し、それをワーカープロセスにプッシュして、コードをソースできるようにすると便利です。
宿題
これが私の現在の解決策です。「大丈夫」と感じますが
- 私はそれを行うためのより良い、より効率的な方法があるかもしれないと感じています
- Roxygenコードの検出に関しては少し壊れやすいようです
サンプルソースファイルの作成
統合機能
関数を適用する
これで、統合されたコードを含むソースファイル「src / conso/src_functions.R」ができました。
r - roxygen2 パッケージを使用して .Rd ファイルをパッケージ化する
パッケージを使用して R パッケージの .Rd ファイルを作成することについて質問がありroxygen2
ます。
R関数を文書化するために、emacsでCc Coを使用して関数の上にコメントを生成し、それらに記入してからroxygenize("pkg")
. このようにして、R 関数用の .Rd ファイルができました。しかし、データ サンプルとパッケージ自体の .Rd ファイルを取得する方法がわかりません。現在、data.Rdの生成とpkg-package.Rd のprompt("data")
生成に使用しています。これらのファイルをフォルダーに入れてから、個別に編集する必要があります。を使用してR関数を文書化するのと同様の方法でデータとパッケージを文書化するにはどうすればよいですか?promptPackage("pkg")
man
roxygen2
どうもありがとうございました!
r - roxygen2 でのサンプルファイルの処理: バックスラッシュが重複しています (\dontrun が \\dontrun になります)
実際の質問
roxygenizing後に、例を含む別のファイルがそれぞれのRdファイルになることを回避する\dontrun{
にはどうすればよいですか?\\dontrun{
私は回避策を見つけましたが、明らかに何かが欠けているように感じますroxigenize()
。
詳細
別のファイルに保存されているroxygen2を使用して例を処理するときに、潜在的なバグ、または少なくとも望ましくない動作に気付いたと思います(実際の roxygen コード内でそれを記述するのとは対照的に)。
問題は\dontrun{
、それぞれのサンプル ファイルの行が、\\dontrun{
roxygenizing 後に結果の Rd ファイルになることです。
以下に、動作の図と簡単な回避策を示します。
1) ディレクトリを確保する
2) サンプルを埋め込む 2 つの異なる方法でサンプル関数を作成する
3) パッケージのスケルトンを作成する
4)別のサンプルファイルを作成しますfoo1()
5) ロキシゲナイズ
6) パッケージの確認
に問題があることを示す R CMD チェックの切り捨てられた\dontrun{
出力./package/test/man/foo1.Rd
7) 回避策
これにより、Rd ファイル内の重複したバックスラッシュがすべて削除されます。
8) パッケージの再確認
再び R CMD チェックの切り詰められた出力。問題の Rd ファイルはチェックに合格しました。現在のエラーは不完全な が原因で./package/test/man/test-package.Rd
あり、この時点では問題ありません
r - roxygen2を使用したS4メソッドの文書化:ヘルプファイルでメソッドを明確に区別する
狙って撃つ前に
この質問はこの投稿と密接に関連していることを私は知っています。実際、私はさまざまな回答で与えられたアドバイスに従いましたが、結果のヘルプファイルは少し「ぎこちない」か、少なくとも少し「まとまって」いるように感じます。したがって、私の質問です。
実際の質問
- S4ジェネリックとそれぞれのメソッドをドキュメント化する場合、ユーザーがさまざまなメソッドを明確に区別できるRdファイル構造を作成して、ドキュメントのどの部分が特定のメソッドに属しているかを明確にするにはどうすればよいですか?
- タグを提供した場合、特定のメソッド
@alias
のヘルプを取得しようとするときに実際にタグを使用するにはどうすればよいですか?ただタイプする代わりに何か??foo-character-method
?foo
- 各メソッドにはそれぞれのドキュメントが確実に含まれるため、a)ジェネリックメソッドの署名引数をまったくドキュメント化しない方がよいでしょう。b)これもそれぞれのメソッド次第であるため、戻り値はありますか?
今のところ、少なくとも視覚的には、一般的な方法とさまざまな方法の適切な区別を実際には処理できないように見えるヘルプファイルになってしまったように感じます。
しかし、多分私はまだこれを完全に取得していません;-)。この場合、どんなポインタでも大歓迎です!
mypkg
これは、S4ジェネリックと2つのメソッドを含むパッケージを生成する再現可能な例です。私はこの投稿とWritingRExtensionsで与えられたアドバイスに従おうとしました
ディレクトリの確保
ジェネリックメソッドの定義
関連するメソッドの定義
パッケージスケルトンを作成する
酸素化
Rdファイルにパッチを適用する
Rdファイルの手動編集など、手動による介入を必要としない自動チェックおよびビルドプロセスを可能にするために、パッチを適用する必要があるものもあります。
パッケージを確認してください
パッケージをビルドしてインストールします
ヘルプファイルを調査します
別の方法:ビルドとインストールの分離
r - 関数クロージャの文書化
たとえば、パッケージに関数クロージャがあるとします。
この関数を文書化する正しい(公式のCRANの意味での)方法は何ですか?特に、
- 使いたい
roxygen2
- 機能のドキュメントを提供したいと思い
g
ますh
r - EmacsCcCoと同様のRパッケージドキュメントを作成するためのRStudio
私は(roxygen2を使用して)Rパッケージを開発するためにEmacsを使用し、コメントを生成する関数上でCcCoが非常に役立つことを発見しました。同じ結果を達成する、つまり生成するRStudioに同様のキーバインドはありますか?
ここで質問がありましたが、この問題に関する更新があるかどうかを知りたいだけです。ありがとう!
r - 他のパッケージのS4メソッドを拡張するときにRdファイル名が競合する
実際の質問
Rdファイル名の競合を回避するにはどうすればよいですか?
- S4ジェネリックとそのメソッドは必ずしもすべて同じパッケージで定義されているわけではありません(カスタムメソッド(の一部)を含むパッケージはジェネリックを含むパッケージに依存します)
roxygenize()
パッケージroxygen2から実際のRdファイルを生成するために使用しますか?
ジェネリックとそのメソッドがパッケージ全体に散在している場合、これがroxygen2
問題なのか一般的な問題なのかはわかりません(モジュラープログラミングスタイルに従う場合、IMHOは一般的に現実的なユースケースシナリオです)。
これらの状況を処理するための推奨される方法は何ですか?
図
パッケージ内pkga
パッケージpkga
でジェネリックメソッドを定義し、Rdファイルを生成するためにfoo
取得するそれぞれのroxygenコードを提供したとします。roxygenize()
roxygenizing()
パッケージを作成すると、このジェネリックメソッド用に作成される可能性のあるすべてのメソッドの参照Rdファイルとして機能するファイルがサブディレクトリに作成foo-methods.Rd
されます。man
ここまでは順調ですね。このジェネリックのすべてのメソッドもパッケージの一部である場合、すべてが良好です。たとえば、このroxygenコードは、次foo-methods.Rd
のANY
-methodのドキュメントが追加されていることを確認しfoo
ます。
ただし、パッケージpkga
がのジェネリックを提供し、foo
他のパッケージ(たとえば)でクラスであるための-メソッドpkgb
を追加することを決定した場合、Rdファイル名および/またはエイリアス( )にRdファイルがすでに存在します:foo
x
character
R CMD check
foo-methods.Rd
pkga
パッケージ内pkgb
より正確には、これはファイルにスロー/書き込まれるエラーです00install.out
デューデリジェンス
(の代わりに)との値を変更しようとしましたが@rdname
、roxygenizing時に設定されているため、エラーが残ります。によって生成されたRdファイルを手動で編集する以外のアイデアはありますか?@aliases
foo_pkgb*
foo*
\title
\name
foo
roxygenize()
2012年12月1日編集
バウンティを開始することに照らして、実際の質問は少し広い味を得るかもしれません:
Rdファイルに関してある種の「パッケージ間」チェックを実装するにはどうすればよいですか。また、パッケージ全体に散在するS4メソッドヘルプファイルを1つのRdファイルに統合して、最後に単一の参照ソースを提示するにはどうすればよいですか。 -ユーザー?
r - 割り当て機能のドキュメントが失敗するRCMDCHECK
check
Roxygenで割り当て関数を使用するのに問題があります。
これはかなり最小限の例です:
そして私が走るときcheck
:
value
2番目がどこから来ているのかわかりません。@param value
おそらくRoxygenが割り当て関数のエントリを自動的に作成するという理論を排除しようとしましたが、それは定義を排除せず、(x,value,value)
定義していないことを訴える新しい警告を生成しvalue
ます。
.Rd
生成された関連部分は次のとおりです。
そこにあると主張する(x, value, value)
署名が見当たりません。check
これはS3関数ですが、S4オブジェクトで動作しています。それでもS3になるはずだと思います。しかし、そうでない場合は、私の使用が@S3method
問題である可能性があります。
ヘルプ?