問題タブ [roxygen]
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 - R ヘルプ ファイル/roxygen2 で方程式を相互参照する方法
私は、作成中の R パッケージの関数の一部を文書化しているところです。
私は roxygen マークアップを使用していますが、それは私の質問とはほとんど関係ありません。
を使用してドキュメントに方程式を入れました\deqn{...}
。私の質問は
、この方程式を後で相互参照する方法はありますか?
たとえば、私の Rd ファイルでは次のようになります。
後で次のようなことができますか:
方程式 \ref{test} を参照すると、...
\eqref{test}
、\ref{test}
(「不明なマクロ」を取得し、リンクされていない)、および(実際には他の関数にリンクするためだけに\link{test}
機能が見つからないことを訴える)も試しました。test
そうしないと、何かハックなことをして、Rd ファイルの etc 内に-- (1)
手動Refer to equation (1)
で追加する必要があるのではないかと心配しています...\deqn
アップデート
一般的な答えは「いいえ」のようです。(あぁ…)
ただし、ビネットを作成して、そこで「通常の」ラテックス/パッケージを使用することはできます。いずれにせよ、roxygen/Rd ファイルに何年もかけて入力した行列方程式?myFunction
が、ヘルプのバージョンでは見栄えが悪いことに気付きました (ほぼ文字通りのラテックス ソースとして表示されます)。PDF版のヘルプでは美しく見えるので、これは残念です。
@Iterator はconditional textの存在を指摘したので、.Rd ファイルでは ASCII 演算を行いますが、PDF マニュアル/ビネットでは Latex 演算を行います。
r - roxygen2 +cygwin+デフォルトパラメータ=切り捨てられた`\usage`セクション
Linuxで開発してきたRのパッケージがあり、Windowsでテストするのは恐ろしい時期です。
ドキュメントはroxygenを使用して作成されており、私はcygwinを使用してパッケージをビルドしています。
問題は、私がroxygenise('test-package')
、roxygen\usage
がドキュメントのセクションを1文字に切り捨てることです。これは私の機能のすべてではありませんが一部に対して行われ、パターンを理解できません。
これは、LinuxまたはWindowsで同じコマンド(つまり、Rプロンプトから)を実行した場合には発生しませんroxygenise('test-package')
-WindowsではCygwinだけです(R devtools + Windowsからのコマンドプロンプトを使用することは私にとってオプションではありません-これは、Makefilesを使用した大きなプロジェクトの一部です等)。
すべての場合において、私はroxygenv2.2.2を使用しています。
アップデート:
これは、デフォルトのパラメータを持つすべての関数で発生するようです。
私はそれを1つの再現可能な例に要約し、問題を切り分けるために可能な限り切り詰めました。
Rから:
/li>(test / Rで)変更
/li>trim.R
し、次のroxygenを上部に追加して、ファイルが次のようになるようにします。Rを実行し、ドキュメントを生成します。
/li>結果の
/li>trim.Rd
ファイルを(test / manで)見てください:
どうやって\usage{t}
??
もちろん、実行R CMD check
すると、文書化された引数がに表示されないというエラーが発生しますが、\usage
これ\usage
は切り捨てられたためです。
なぜこれが発生するのか、どうすれば回避できるのか誰かが知っていますか?おそらくroxygen2
、Mac、Windows、Linuxで動作するが、Cygwinでは動作しないものに依存しているものはありますか?
乾杯(私はこれで髪を引き裂いてきました)。
アップデート#2:
私は、Windows R(つまりの1つC:/Program Files/R/R-2.14.2/bin
)ではなく、CygwinのパッケージマネージャーからインストールされたRを使用しています-WindowsRがCygwinで動作することに気づいていませんでした。
CygwinでWindowsRを使用すると、バグはなくなります。CygwinでCygwinRを使用すると、バグが発生します。
これは、roxygen2とは対照的に、CygwinRに関連するいくつかのバグであると推測できます。
今のところ、cygwin内でWindows Rを使用する回避策を使用します(実際、これができることがわかったので、とにかくCygwin Rは必要ありません!)。
r - install_github がエラーを返す: zip ファイルを開けません
次を実行すると:
次のエラーが表示されます。
devtools 0.51 の場合:
より新しいバージョン (0.6) の devtools をインストールしました。install_github('devtools')
エラーはより有益ですが、似ています:
私は何か間違ったことをしていますか?
r - パッケージの新しいバージョンで関数の名前を変更する際に従うべきベスト/推奨プラクティスはありますか?
古いパッケージを更新し、非常に長い関数名の束を短縮しています。古い関数が廃止されたことをユーザーに知らせるにはどうすればよいですか? 私はすべてを文書化しているroxygen2
ので、何を使用すべきか疑問に思ってい#' @alias
ますか? 考え?
r - 自分のRパッケージを作成すると、他のパッケージを正しくインポートできないようです。
了解しました。最初にRパッケージを作成しようとしましたが、行き詰まりました。パッケージの作成方法は次のとおりです。
私はroxygen2を使用しており、「pkg-package.R」ファイルに次のインポートがあります。
次に、ターミナルから次のコマンドを実行します。
チェックフェーズ中に、次の警告が表示されます。
**遅延読み込み用のパッケージの準備
警告:読み込み時に以前のインポート'hour'を置き換えます'lubridate' <br>警告:読み込み時に以前のインポート'mday'を置き換えます'lubridate' <br>警告:読み込み時に以前のインポート'month'を置き換えますlubridate'<br>警告:'lubridate'をロードするときに前のインポート'wday'を置き換えます<br>警告:'lubridate'をロードするときに前のインポート'week'を
置き換えます警告:'lubridate'をロードするときに前のインポート'yday'を置き換えます<br>警告:「lubridate」をロードするときに以前のインポート「year」を置き換えます。<br> ** help
*ヘルプインデックスのインストール
**パッケージインデックスの構築...
**インストールされたパッケージをロードできるかどうかのテスト
警告メッセージ:
1:「lubridate」をロードするときに前のインポート「hour」を置き換える<br> 2:「lubridate」をロードするときに前のインポート「mday」を置き換える<br> 3:「lubridate」をロードするときに前のインポート「month」を置き換える<br> 4: 'lubridate'をロードするときに前のインポート'wday'を置き換える<br>5:'lubridate'をロードするときに前のインポート'week'を置き換える<br>6:'lubridate'をロードするときに前のインポート'yday'を置き換える<br>7:前を置き換える'lubridate'をロードするときに'year'をインポートします
それらをどうすればいいのかよくわかりませんが、名前空間の内容を上書きすることによる典型的な警告のようです。いずれにせよ、パッケージをインストールすることはできますが、使用しようとすると次のようになります。
library(pkg)
POSIXt、Date、およびdifftimeの+および-メソッドのオーバーライド
警告メッセージ:
1:「lubridate」をロードするときに以前のインポート「hour」を置き換える<br> 2:「lubridate」をロードするときに以前のインポート「mday」を置き換える<br> 3:「lubridate」をロードするときに前のインポート「month」を置き換える<br> 4:「lubridate」をロードするときに前のインポート「wday」を置き換える<br> 5:「lubridate」をロードするときに前のインポート「week」を置き換える<br> 6: 'lubridate'をロードするときに前のインポート'yday'を置き換える<br>7:'lubridate'をロードするときに前のインポート'year'を置き換える<br>d <-my.function(arg1、arg2)
MATCH(x、x)のエラー:関数「MATCH」が見つかりませんでした
traceback()を使用して、merge.zoo()の呼び出し中にこれが生成されていることがわかりました。そこで、Rセッションと出来上がりの間に手動でzooをロードしようとしましたが、エラーメッセージなしで関数は正しく機能します。
「pkg-package.R」ファイルとNAMESPACEの両方で、インポートの順序を手動で変更してみました。ただし、他の場所で見つけたものに基づいて、DESCRIPTIONにインポートまたは依存を追加していません。ヘルプ?
r - RStudio は関数の roxygen テンプレートを自動的に生成できますか?
RStudio は自動化された roxygen テンプレートの作成をサポートしていますか?
Emacs-ESS ではC-x C-o
、関数の roxygen テンプレートを生成します。たとえば、これは自動的に変換されます。
これに:
RStudio 内に同様の機能はありますか?
アップデート
- ESS 12.09-2の時点で、コマンドは次のように変更されました。
C-c C-o C-o
- この機能は Rstudio に実装されています: CTRL+ALT+SHIFT+R
r - 同名の関数を含むパッケージをインポートする際のパッケージ作成のベスト プラクティス
ここでrmetadata というパッケージを作成しています。このパッケージの目的は、学術出版物/メタデータに関する多くのデータ ソースのOAI-PMHサービスにリクエストを行うことです。私は他のパッケージ (rpmc、rdatacite など) を作成しました。これらの関数は、各パッケージで同じことを行うため一貫性を保つために、同じ名前の関数を持っていますが、データ ソースが異なります。
rmetadata のインストールについて
次のような多くの警告が表示されます
私は何をすべきか?rmetadata が呼び出す各パッケージ内の関数の名前を変更する必要がありますか? たとえば、identify は rdryad では dryad_identify になり、identify は rdatacite では datacite_identify になります。
または、他の何か?
r - ソースコードを複数のファイルから(Roxygen)コメントを含む単一のファイルに効率的に統合する
質問
複数のソースファイルから単一のソースファイルにソースコードを統合する効率的な方法は何ですか?Roxygenドキュメントのコメントを含み、場合によっては他のコメントも含みますか?
コメントを説明する(属性「フィールド」に入れる)パッケージの解析メソッドがあったことを覚えていますが、もう見つかりません。
背景情報
主に2つの理由から、特定の数のソースファイルから単一のソースファイルにソースコードを統合する柔軟性が気に入っています。
- 頭を上げ続けるために、私は「ファイルごとに1つの定義」パラダイムに固執しています。このパラダイムでは、各ソースファイルに正確に1つの定義(関数、S4メソッド、S4参照クラスなど)が含まれています。また、これらのソースファイルは、私の「ソースディレクトリ」のさまざまなサブディレクトリに保存されている可能性があり、したがって同じファイル名を持っている可能性もあります。ただし、真のRパッケージをまとめるには、複数のdefを1つのソースファイルにグループ化する方がよい場合があります。重複したファイル名の場合、私もそうする必要があります。
- 並列化する場合、必要なすべてのソースコードを1つのファイルにグループ化し、それをワーカープロセスにプッシュして、コードをソースできるようにすると便利です。
宿題
これが私の現在の解決策です。「大丈夫」と感じますが
- 私はそれを行うためのより良い、より効率的な方法があるかもしれないと感じています
- Roxygenコードの検出に関しては少し壊れやすいようです
サンプルソースファイルの作成
統合機能
関数を適用する
これで、統合されたコードを含むソースファイル「src / conso/src_functions.R」ができました。
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 - プロットの新しい方法 - エクスポート方法は?
プロットの新しいメソッドを定義したいパッケージを作成しています。roxygen のインソース ドキュメントを使用しています。この質問は、Roxygen を使用して、別のパッケージのジェネリックの S3 メソッドを適切に文書化する方法は? と非常に似ているよう です。 および Roxygen2 - S3 メソッドを適切に文書化する方法 ですが、まだ機能させることができません。
問題を引き起こしている関連部分は次のとおりです。
これを実行してメソッド (プロット) を調査すると、ABI オブジェクトに対して定義されたメソッドがありません。ABI:::plot (ABI はパッケージの名前) による関数へのアクセスは機能します。:: を使用することはできません。
パッケージのビルド チェック中に、次の警告が表示されます。
議論には賛否両論あるようです。しかし、ジェネリックには引数 x と ... があり、(ベースに加えて) 私の ABI メソッドもそうであるため、これを理解していません。
したがって、2 つの問題がありますが、これは同じ問題から生じることを願っています。plot.ABI メソッドがエクスポートされず、パッケージ チェックで警告がスローされます。
これを解決するにはどうすればよいですか?