2016-12-01 14 views
1

私はRstudioで自分のRパッケージをビルドしていますが、パッケージのビネットを作成するのに疲れたときに予期しない問題が発生しました。私がRstudioでビルド/ロードパネルを押すと、パッケージのドキュメントが作成されている間に、ビネットエラーが発生しました。私が得たバイナリエラーを解決するには、パッケージに外部データを追加する必要があります。このデータを使用してパッケージのビネットをコンパイルします。パッケージをインストールするのにdevtools::install()コマンドを使用しましたが、inst/ディレクトリは作成されません。 extdatainstディレクトリになければなりません。私もdevtools::use_data()を使用して私のPCからデータを追加しましたが、私は外部データを追加できません。パッケージの外部データを読み込むにはどうすればよいですか?手動でextdataを作成してそこに外部データを置くべきではないと思います。 devtools::install()を使用したときにinst/が作成されなかったのはなぜですか?私のパッケージに外部データとしてcsvファイルのセットを追加するには?開発中のRパッケージに外部データファイルを追加するには?

これは私が外部データを読み取るために、私のビネットで使用するつもりおもちゃのヘルパー関数です:

myFunc <- function(myDir, ...) { 
    files <- list.files(myDir, full.names = TRUE, "\\.csv$") 
    readMe <- lapply(files, read.csv) 
    return(readMe) 
} 

は、これは私がいくつかの一般的なエラーを取得して、Rパッケージをビルドする初めてです。私の質問がうまくいかない場合は、私の謝罪。 inst/内のファイルを見つけるため

、私はsystem.file()を使用する必要があるが、私はこのディレクトリを持っていない、プラスmyFuncは、ファイルを取得し、.CSVとしてそれらを読み取るために、ファイルのディレクトリを受け入れ、これはおもちゃのコードチャンクで実行することができ

このデータを使用してパッケージビネットをコンパイルするには、パッケージに外部データをロードするにはどうすればよいですか? devtools::installl()にアクセスしたときにinst/が作成されないのはなぜですか?誰も私にこれを行う方法を助けることができますか?事前にありがとう:)

答えて

3

inst/extdata/file.csvあなたのプロジェクトのベースディレクトリ(DESCRIPTIONは)に手動で作成する必要があります。アクセスするすべてのファイルをそのディレクトリに置くことができます。そして、関数の例や、あなたのビネット内のファイルを取得する

files <- lapply(list.files(system.file('extdata', package = 'my_package'), full.names = TRUE), read.csv) 

system.file()は、list.files()extdata内のすべてのファイルのベクトルを作成し、extdataフォルダへのパスを返します。最後に、lapply()read.csv()を実行すると、すべてのファイルの内容を1つのリストに読み込む必要があります。

+0

私はパッケージをインストールしたときにRstudioによってinst /ディレクトリを自動的に作成できると思います。私はgithubで他人のパッケージをチェックしました。さらに、私のデータは、system.file()が単一のファイルしか見つけられない複数のcsvファイルである可能性があります。これをもっとプログラム的にするにはどうすればよいですか?もっと良いアイデアをお願いしますか? – Jerry

+0

多分RStudioはできますが、フォルダを手作業で作っただけでもうまく動作します。私はすべてのファイルを考慮に入れてコードを更新しました。これは役に立ちますか? – CephBirk

+0

system.file()を使用してcsvファイルのリストを検索する必要がある場合、これをもっとプログラム的にするにはどうすればよいですか? – Jerry

関連する問題