executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
write-roxygen-docsRパッケージの関数、データセット、クラスのroxygen2ドキュメントを記述する。 標準タグ、相互参照、使用例、NAMESPACEエントリの生成を網羅。 tidyverseドキュメントスタイルに準拠。新規エクスポート関数のドキュメント追加、 内部ヘルパーやデータセットのドキュメント作成、S3/S4/R6クラスとメソッドの ドキュメント作成、またはドキュメント関連のR CMD checkノートの修正時に使用する。
Independent GitHub snapshot · Automated classification · Original documentation governs
Rパッケージの関数、データセット、クラスの完全なroxygen2ドキュメントを作成する。
R CMD checkノートを修正する時@family、@seealso)roxygenコメントを関数の直上に配置する:
#' Compute the weighted mean of a numeric vector
#'
#' Calculates the arithmetic mean of `x` weighted by `w`. Missing values
#' in either `x` or `w` are handled according to the `na.rm` parameter.
#'
#' @param x A numeric vector of values.
#' @param w A numeric vector of weights, same length as `x`.
#' @param na.rm Logical. Should missing values be removed? Default `FALSE`.
#'
#' @return A single numeric value representing the weighted mean.
#'
#' @examples
#' weighted_mean(1:5, rep(1, 5))
#' weighted_mean(c(1, 2, NA, 4), c(1, 1, 1, 1), na.rm = TRUE)
#'
#' @export
#' @family summary functions
#' @seealso [stats::weighted.mean()] for the base R equivalent
weighted_mean <- function(x, w, na.rm = FALSE) {
# implementation
}
期待結果: タイトル、説明文、各パラメータの@param、@return、@examples、@exportを含む完全なroxygenブロックが作成される。
失敗時: タグについて不明な場合は?roxygen2::rd_rocletを確認する。よくある省略は@returnで、CRANではエクスポートされるすべての関数に必須。
| タグ | 目的 | エクスポートに必須? |
|---|---|---|
#' Title | 最初の行、1文 | はい |
#' Description | 空行後の段落 | はい |
@param | パラメータのドキュメント | はい |
@return | 戻り値の説明 | はい(CRAN) |
@examples | 使用例 | 強く推奨 |
@export | NAMESPACEに追加 | はい、パブリックAPIの場合 |
@family | 関連関数のグループ化 | 推奨 |
@seealso | 相互参照 | 任意 |
@keywords internal | 内部としてマーク | エクスポートしないドキュメントに |
期待結果: 関数タイプに必要なすべての必須タグが特定される。エクスポートされる関数は最低限@param、@return、@examples、@exportを持つ。
失敗時: タグについて不明な場合はroxygen2ドキュメントで使用法と構文を確認する。
R/data.Rを作成する:
#' Example dataset of city temperatures
#'
#' A dataset containing daily temperature readings for major cities.
#'
#' @format A data frame with 365 rows and 4 variables:
#' \describe{
#' \item{date}{Date of observation}
#' \item{city}{City name}
#' \item{temp_c}{Temperature in Celsius}
#' \item{humidity}{Relative humidity percentage}
#' }
#' @source \url{https://example.com/data}
"city_temperatures"
期待結果: R/data.Rに各データセットのroxygenブロックが含まれ、@formatで構造を説明し、@sourceでデータの出所を提供している。
失敗時: R CMD checkがドキュメント化されていないデータセットを警告する場合、引用符で囲まれた文字列(例:"city_temperatures")がusethis::use_data()で保存されたオブジェクト名と完全に一致することを確認する。
R/packagename-package.Rを作成する:
#' @keywords internal
"_PACKAGE"
## usethis namespace: start
## usethis namespace: end
NULL
期待結果: R/packagename-package.Rが@keywords internalと"_PACKAGE"センチネルを持って存在する。devtools::document()を実行するとman/packagename-package.Rdが生成される。
失敗時: R CMD checkがパッケージドキュメントページの欠如を報告する場合、ファイルがR/<packagename>-package.Rという名前で"_PACKAGE"文字列を含むことを確認する。
名前にドットが含まれる関数(S3メソッド):
#' @export
#' @rdname process
process.myclass <- function(x, ...) {
# S3 method
}
@inheritParamsによるドキュメントの再利用:
#' @inheritParams weighted_mean
#' @param trim Fraction of observations to trim.
trimmed_mean <- function(x, w, na.rm = FALSE, trim = 0.1) {
# implementation
}
.dataプロノウンを使用したグローバル変数バインディングの修正:
#' @importFrom rlang .data
my_function <- function(df) {
dplyr::filter(df, .data$column > 5)
}
期待結果: 特殊ケース(S3メソッド、継承パラメータ、.dataプロノウン)が正しくドキュメント化される。@rdnameでS3メソッドをグループ化する。@inheritParamsで重複なくパラメータドキュメントを再利用する。
失敗時: R CMD checkが「グローバル変数の可視バインディングがない」と警告する場合は#' @importFrom rlang .dataを追加するか、最後の手段としてutils::globalVariables()を使用する。
devtools::document()
期待結果: man/ディレクトリが各ドキュメント化オブジェクトの.Rdファイルで更新される。正しいエクスポートとインポートでNAMESPACEが再生成される。
失敗時: roxygenの構文エラーを確認する。一般的な問題:\describe{}内の閉じ括弧の欠如、行の#'プレフィックスの欠如、または無効なタグ名。修正後にdevtools::document()を再実行する。
@param、@return、@examplesを持つdevtools::document()がエラーなく実行されるdevtools::check()がドキュメント警告を示さない@familyタグが関連関数を正しくグループ化しているdevtools::run_examples()でテスト)@returnの欠如: CRANはエクスポートされるすべての関数に戻り値のドキュメントを要求する\dontrun{}で囲み、理由を説明するコメントを追加する\donttest{}を使用するRoxygen: list(markdown = TRUE)を有効化するdevtools::document()の実行忘れ: manページは生成されるものであり、手動で記述するものではないcreate-r-package - rox ygen設定を含む初期パッケージセットアップwrite-testthat-tests - ドキュメント化した関数のテストwrite-vignette - 関数リファレンスを超えた長文ドキュメントsubmit-to-cran - CRANのドキュメント要件