これに割って入る前に、他の人が言っていることを繰り返したいと思います。R のパッケージ システムは文字通りまさにあなたが探しているものです。コードなしでデータのみを配布するために多くの人が使用して成功しています。R のデータの遅延ロードと組み合わせると、大規模なデータセットをパッケージとして配布でき、すべてをロードしたくないユーザーに負担をかけることはありません。
さらに、パッケージを使用しないと R のヘルプ システムを利用できません。元の質問は使用について明示的に尋ねて?myData
おり、パッケージを使用しない場合、ユーザーはそれを行うことができません。これは単純に、R の基本ヘルプ機能の制限です。
さて、質問に答えます。これを機能させるには、エクスポートされていない roxygen 関数を使用する必要がありますが、それほど面倒ではありません。さらに、データを文書化する R ファイルを独自のフォルダーに配置する必要があり、そのフォルダー内に という空のフォルダーを作成する必要がありますman
。
ディレクトリ構造の例:
# ./
# ./man/
# ./myData.R
# ./otherData.R
myData.R
#' My dataset
#'
#' This is data I like.
#'
#' @name myData
NULL
otherData.R:
#' My other dataset
#'
#' This is another dataset I like
#'
#' @name otherData
NULL
さて、すべてをまとめるコードです (もちろん、これを関数でラップすることもできます):
library(roxygen2)
mydir <- "path/to/your/data/directory/"
myfiles <- c("myData.R","otherData.R")
# get parsed source into roxygen-friendly format
env <- new.env(parent = globalenv())
rfiles <- sapply(myfiles, function(f) file.path(mydir,f))
blocks <- unlist(lapply(rfiles, roxygen2:::parse_file, env=env), recursive=FALSE)
parsed <- list(env=env, blocks=blocks)
# parse roxygen comments into rd files and output then into the "./man" directory
roc <- roxygen2:::rd_roclet()
results <- roxygen2:::roc_process(roc, parsed, mydir)
roxygen2:::roc_output(roc, results, mydir, options=list(wrap=FALSE), check = FALSE)
これで、空だったフォルダーに適切にフォーマットさmyData.Rd
れたファイルが作成されます。otherData.Rd
man