問題タブ [rd]
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 ヘルプ (.Rd ファイル?) に適切なアポストロフィ ' などの非 ASCII 文字を含めるにはどうすればよいですか?
R ヘルプ ファイルの "It's" にあるカーリー アポストロフィのような文法文字を使用することはよくあります。
通常の一重引用符を使用することは、roxygen の行の開始点 ( ) や文字列を引用するために使用される (.Rd ファイルではなく、テキスト エディターでの構文強調表示が壊れる原因と'
なる) ため、優れた解決策ではありません。'
#'
うまくいかないこと
- ユニコードで貼り付けることはできません。
- CRAN では、移植性のためにパッケージに非 ASCII 文字を使用することはできません。
- \u2019 などのエンコードされた Unicode は使用できません。
- これは生の文字列としてレンダリングされます。
- & エスケープされた HTML コードは使用できません。
’
ヘルプで生のコードとして表示されます :-(
では、Rd ファイルにアポストロフィを含めるための解決策はありますか?
r - R CMD チェック中に S4 クラスと「文書化されていないコード オブジェクト」を文書化する
roxygen2 を使用して S4 クラスのドキュメント化に苦労した後、一歩下がってpackage.skeleton
、 、promptClass
、およびを使用して最小限の例を作成することにしましたpromptMethod
。
私の問題は、R CMD check
「文書化されていないコードオブジェクト」についての警告が表示されることですが、それらを適切に文書化したと思います。
私が今持っているファイルは次のとおりです。
testClass.R:
testClass-class.Rd
およびtestMethod.Rd
パッケージのドキュメント ファイルもありますが、ここでは関係ないと思います。
R CMD check
与えます:
私はこれらのセクションを参照しましたが、これらから得たのは、少なくとも へのエイリアスが必要であるということですgeneric,signature-list-method
。この場合alias{testMethod,testClass-method}
、promtMethod の呼び出しによってドキュメント ファイルに自動的に配置されます (クラスからコメントアウトしました)。 .Rd ファイルが重複しているため)。
この警告を取り除くには、.Rd ファイルで何を変更する必要がありますか?
r - Rd ファイル内のサンプルのアンラップ
私は最近パッケージを CRAN に提出しましたが、彼らのコメントの 1 つは、「Rd ファイルごとに 5 秒未満で実行できる Rd ファイル内のすべての例をアンラップしてください」というものでした。
これらの rd ファイルは roxygen2 で生成するので、すべての例をアンラップしても正確に何を意味するのかよくわかりません。それらのすべてには実行しない引数があるため、それを削除する必要があるかどうかはわかりません。以下にいくつかのサンプルコードがあります。
編集: パッケージは CRAN に入りました。つまり、すべてのテストやコメントなどに合格したことを意味します。それでも上記のようなコメントを頂きました。
r - .Rd ファイルから .R ファイルを生成する
.Rファイルから.Rdroxygen2::roxygenise()
ファイルdevtools::document()
を生成するために使用できることを知っています。
たとえば、Test.Rが次の場合
次に、 roxygen2::roxygenise()
またはの出力は次のdevtools::document()
ようになります
しかし、私はその逆に興味があります。.Rファイルに変換したい .Rd があります。何かご意見は!
r - roxygen2 は「プレフィックスが既知」のヒューリスティックを使用しますか?
仮説
Roxygen2 はヒューリスティックを使用します。ピリオドの前の接頭辞が既知の場合 ( merge
、cut
)、メソッドは S3 メソッドであり、そうでない場合 ( slice
) は通常のメソッドです。
質問
このヒューリスティックは文書化されていますか? さらに重要なことに、それを回避する方法はありますか? 接頭辞を気にせずに、関数名の未使用の識別子を記述できるはずです。これは、特定のパッケージの安定性に関して提供できる将来の保証がないことも意味します。「S3クラスには正式な定義がない」ことは理解していますが(以下に引用されている最後のビネット)、正式な定義があるものをいじるのはばかげているようです。さらに、新しいパッケージを使用するためにパッケージを将来編集すると、突然、既存の API を無効にすることが必要になる場合があります。
ファイルが生成された後に手動で編集することでこれを修正しようとしましたNAMESPACE
が、これはパッケージのインストールを台無しにすることがあります(まだ理解していない方法で)。次の実験は、質問の設定です。
実験
を実行devtools::create("MyPackage")
した後、次のコードを入力します
でMyPackage/R/somefile.R
。
今すぐ実行しますdevtools::document()
(2回)。内容がわかります
ファイルに生成されていますMyPackage/NAMESPACE
。つまり、4つの機能がS3機能として想定されています。
ページから
現在(2014年頃から?)#' @export
S3メソッドまたは通常のメソッドの前に書くのに十分であり、それがどちらであるかがわかりroxygen2
ます。