0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【備忘録】Rパッケージ開発のファイルの配置

Last updated at Posted at 2022-05-25

ファイルの配置を定型化したい

公開を意図していなくても、ファイルの配置を規則的に行うことにはメリットがある。
CRANの作法に(あるていど)従ったファイル配置に関する備忘録を作成する。
特にデータ関連のファイル配置について。
データには使用目的に応じていくつかの種類に分けられる。

  1. 公開するバイナリデータ.rda
  2. 公開しないバイナリデータ.rda
  3. 公開するその他形式のデータ.csv .xlsxなど
  4. 公開しないその他形式のデータ.csv .xlsxなど

この内、1, 2, 3については配置する場所が決まっている。
4についてはっきり言及している資料は見つからないが、プロジェクトフォルダの外に置いておくのがいいだろうと思っている。

  1. 公開するバイナリデータはdata/
  2. 公開しないバイナリデータはR/sysdata.rda
  3. 公開するその他形式データはinst/extdata/

手順

  1. プロジェクトの作成。RStudioを使って新規パッケージ用のプロジェクトを立ち上げる。
  2. usethis::use_namespace()でNAMESPACEを作成。R/配下にスクリプトを作成しないなら必須でない(?)。個人的なデータ生成がもっぱらの関心なら必要ない場合もあるだろう。
  3. usethis::use_readme_rmd()でREADMEを作成。同上。ただし、RMarkdownを使いたい場合はこれを利用した方がいいと思う。
  4. usethis::use_testthat()でテスト用フォルダを作成。これも必須ではないが、便利な機能なので使うに越したことはない。
  5. usethis::use_test("テスト名")tests/testthat/test-テスト名.Rが作成される。同上。
  6. データの生成や整理に使うスクリプトはdata-raw/配下へ配置する。このディレクトリは、usethis::use_data_raw()を実行することで自動的に作成される。
  7. スクリプト内でusethis::use_data(オブジェクト名)とすれば、data/配下へバイナリデータオブジェクト名.rdaが作成される。データの生成はここで行う。バイナリが不要ならuse_data()の代わりにreadr::write_csv()など。
  8. その他の形式のデータ(csvなど)をプロジェクト内に保存する場合は、inst/extdata/配下へエクスポートする。これは公開した場合、公開される。プロジェクト外なら任意でよいだろう。
  9. 公開パッケージで、公開しないデータはR/sysdata.rdaとする。
  10. 通常、パッケージ公開にあたってはチェックdevtools::check()とテストusethis::test("テスト名")が必要になるが、公開目的でないなら必須ではない。このテストはそもそもdata-raw/以下のファイルは対象にならない(?)
  11. また通常、公開パッケージならばREADME.Rmdで、作成したライブラリを読み込んで実演するといったことがよく行われるが、これはあらかじめリポジトリにアップロードされてあるバイナリ形式のライブラリがインストールされていなければ機能しないため、公開していないデータを読み込んで出力することはできない。devtools::load_all()で読み込んだデータはrmarkdown::render()からは読み込めないようである(?)。load_all()の実体はsource()なので多分そう。

予定

公開する場合は、ライセンスの記載やパッケージの説明、マニュアルの作成等の文書を作成する必要があり、またそれらは単なる文書ではなく、相互にリンクしていて、書き方にもフォーマットがある。またそれらを支援するツールがusethisやdevtools、roxygen2などのパッケージから利用できる。
それらについても今後ここに追記するかもしれない。

参考文献

  1. Automate Package and Project Setup • usethis
  2. Chapter 14 External data | R Packages
  3. 第1章 新しくRパッケージを作る | Practical R Package Development (Japanese)
  4. 【R】 初めてのパッケージ作成で迷った5つのコト。 - Qiita
  5. こわくないRパッケージ開発!2016 - Qiita
  6. 🔧Rパッケージ開発時に利用するデータの種類とその使い分け - cucumber flesh
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?