2

私は現在Rパッケージを構築しています。

サンプルデータを提供したいと思います。package.skeleton() によって作成されたデータ ディレクトリと、データセットのロード方法などを認識しています。

問題は、ファイルを入力として読み取る関数を設計したことです。その理由は、私のパッケージを使用する人は通常、大きなデータセットをロードするからです。そのため、私の関数はファイルを 1 行ずつ読み取ります。

最初にサンプル データ ファイルを読み込んでから結果のテーブル/データ フレームを引数として渡すのではなく、サンプル データ ファイルを関数に読み取らせる方法が不明なため、パッケージをチェック ステージに渡す際に問題が発生しています。

これが明確であることを願っています。

前もって感謝します!

編集 ### コメントへの応答

私の関数はファイルを引数として取ります。つまり、

example <- function(test_file){

test <- readLines(testFile)

....Do something to each line ...

}

R ドキュメント コードを使用して、データフレームではなくファイルを関数に渡す方法がわかりません。

ドキュメントの私のテストコードは以下のようなものです

\examples{
library(new_package)
tester <- test(testfile=somefile)
}

Rは次のようなデータ構造を期待しているように見えるため、これは実行に失敗します。

data(somedataset)
testet <- example(somedataset)

このエラーは、R CMD チェック プロセスがファイルを見つけて読み取ることができないために発生します。関数の引数がデータ構造ではなくファイルになるようにパッケージを構築する方法はありますか?もしそうなら、ドキュメントのサンプルコードでこのファイルを引数として渡すにはどうすればよいですか?

4

2 に答える 2

1

このサンプル関数はどうですか:

#' Example function
#' @param test_file file path
#' @examples \dontrun{
#' example(system.file('example_data.txt', package='package_name'))
#' }
example <- function(test_file) {
    test <- readLines(testFile)
    # whatever you wish to do
}

詳細に:

  • サンプル データセットをdatadir (私が正しければ、カスタム関数なしで読み込まれるデータセットを保持するためのもの) から eginstディレクトリに移動します。これにより、インストールされたパッケージのディレクトリにサンプル ファイルが配置されます。
  • system.fileドキュメントでデモファイルを参照し、
  • それらを自動的に実行することによって引き起こされる警告を排除するために例を指定し\dontrunますが、それでもドキュメントに表示されます(ただし、上記が問題ない場合、後者は必要ありません)。
于 2012-09-27T22:58:47.253 に答える
0

ビッグデータに関するあなたのジレンマを理解しています (私は同じ問題を扱っている生物学者です) ので、例を実行しないことをお勧めします。これにより、チェックに合格することができますが、実行するのが簡単な例ではない理由を示す小さなメモを (コメントとして、または関数ドキュメントの他の場所に) 追加する必要があります。

\examples{
\dontrun{
# Throw in your examples here
 }
}

これにより、チェックに合格し (少なくともこの問題を回避)、パッケージをインストール可能にすることができます。

于 2012-09-27T22:57:38.987 に答える