目次
概要
Maintainer: | John Blischak, Alison Hill, Ben Marwick, Daniel Sjoberg, Will Landau |
Contact: | jdblischak at gmail.com |
Version: | 2024-09-25 |
URL: | https://CRAN.R-project.org/view=ReproducibleResearch |
Source: | https://github.com/cran-task-views/ReproducibleResearch/ |
Contributions: | このタスクビューに対する提案や改良は、GitHubのissueやpull request、またはメンテナのアドレスに電子メールで送ってください。詳しくはContributing guideをご覧ください。 |
Installation: | このタスクビューのパッケージは、ctvパッケージを使用して自動的にインストールすることができます。例えば、ctv::install.views(“ReproducibleResearch”, coreOnly = TRUE)は全てのコアパッケージをインストールし、ctv::update.views(“ReproducibleResearch”)はまだインストールしていない全てのパッケージと最新のものをインストールすることが可能です。詳しくはCRAN Task View Initiativeをご覧ください。 |
再現性のある研究の目標は、特定の指示をデータ解析や実験データに結びつけ、学問を再現し、よりよく理解し、検証できるようにすることです。この目的のためのRのパッケージは、リテラートプログラミング、パイプラインツールキット、パッケージの再現性、プロジェクトのワークフロー、コード/データフォーマットツール、フォーマットコンバータ、オブジェクトキャッシングのグループに分けることができます。
現在のメンテナは、このタスクビューを最初に作成し、維持したMax Kuhnに感謝します。
読み書きできるプログラミング
Rで再現性の研究を促進する主な方法は、コンテンツとデータ解析コードの組み合わせである文書を使用することです。Sweave関数(base R utiles パッケージにある)とknitrは、単一のドキュメントが、コンテンツおよび分析を定義するように、主題とRコードをブレンドするために使用することができます。brewとR.rspは、様々なマークアップにRコードを埋め込むの代替的なアプローチが含まれています。
読み書きできるプログラミングのためのリソースは、最高のドキュメントタイプ/マークアップ言語によって編成されています。
LaTex
Sweaveとknitrの両方は、LaTeXファイルを処理することができます。lazyWeaveは、最初からLaTeX文書を作成することができます。
RweaveExtraは、Sweaveドライバーに処理と出力を制御する追加オプションを提供します。
knitrおよびrmarkdown(およびpandoc)は、LaTeX beamerクラスを使用してスライドを作成するために使用できます。
- 変換関数オブジェクト:
- summary tables/statistics: gtsummary, Hmisc, NMOF, papeR, quantreg, rapport, reporttools, sparktex, table1, tables, xtable, ztable, codebook
- tables/cross-tabulations: gtsummary, Hmisc, huxtable, lazyWeave, knitLatex, knitr, reporttools, table1, ztable
- graphics: animation, Hmisc, grDevices::pictex, sparktex, tikzDevice
- statistical models/methods: gtsummary, memisc, quantreg, rms, stargazer, suRtex, texreg, xtable, ztable
- bibtex: bibtex, RefManageR
- others: latex2expは、数式をプロットするためにLaTeXの数式を変換します。
- その他のツール
HTML
knitrは、HTMLファイルを直接処理することができます。Sweaveもまた、R2HTMLを経由してHTMLを操作することができます。lazyWeaveは、最初からHTML形式のドキュメントを作成することができます。
HTMLスライドの場合、knitrとrmarkdownの組み合わせ(pandocとともに)を使用して、ioslidesまたはreveal.js、Slidy、またはremark.js(xaringanから)を使用してスライドを作成できます。
blogdownとbookdown、distillというパッケージは、Webサイト全体を作成することができます。
変換関数オブジェクト:
- summary tables/statistics: gtsummary, parameters, stargazer, table1, codebook
- tables/cross-tabulations: DT, flextable, formattable, gt, gtsummary, htmlTable, HTMLUtils, huxtable, hwriter, knitr, lazyWeave, table1, texreg, ztable
- statistical models/methods: gtsummary, rapport, stargazer, xtable
- others: knitcitations, RefManageR
その他のツール:
htmltoolsは、HTMLを操作するためのさまざまなツールを持っています。タフティスタイルの配布資料を作成するためのtufterhandout。
Markdown
knitr は、支援なしでmarkdownファイルを処理することができます。markdownとrmarkdownは、この形式で文書を操作するための一般的なツールを持っています。lazyWeaveは、最初からマークダウン形式の文書を作成することができます。また、asciiはRオブジェクトをAsciiDoc形式で書き込むことができます。
変換関数オブジェクト:
- summary tables/statistics: gtsummary, papeR
- tables/cross-tabulations: DT, formattable, gtsummary, htmlTable, knitr, lazyWeave, papeR, parameters
- statistical models/methods: gtsummary, pander, papeR, rapport, texreg
- others : RefManageR
その他のツール:
タフティスタイルの配布資料を作成するためのtufterhandout。kfigrは、マークダウンドキュメント内の数字のインデックス作成を可能にします。
Microsoft / LibreOffice フォーマット
officer(以前のReporteRおよびそのR2DOCX以前)は、docxおよびpptxファイルを作成できます。 R2wd(Windowsのみ)はWord文書を最初から作成することもでき、R2PPT(Windowsのみ)はPowerPointスライドを作成することもできます。 rtfは、リッチテキスト形式のドキュメントに対して同じことを行います。 openxlsxは、xlsxファイルを作成します。readODSは、Open DocumentSpreadsheetsの読み取りと書き込みを行うことができます。
変換関数オブジェクト:
- summary tables/statistics: codebook, codebookr
- tables/cross-tabulations: flextable, huxtable, pharmaRTF, r2rtf
- graphics: mschart
- others : unrtf
パイプラインツールキット
Pipeline toolkitsは、再現性の維持と検証に役立ちます。パイプラインツールキットは、計算結果を基礎となるコードやデータと同期させ、すべてが最新の状態であることをユーザーに伝えます。言い換えれば,出発材料から結果を再現できるという具体的な証拠を提供し,データ解析プロジェクトを一からやり直す必要がないようにします。パイプラインツールキットとして、targetsがあります。GNU Makeに似ていますが、Rに特化しています。
- drake:データ分析用の汎用計算エンジン。drakeは、依存関係が変化すると中間データオブジェクトを再構築し、結果が既に最新の場合は作業をスキップします。
- flowr:このフレームワークを使用すると、複雑なパイプラインを設計して実装し、機関のコンピューティングクラスターに展開できます。
- maestro:データパイプラインを作成および調整するためのフレームワーク。1つのプロジェクトで複数のパイプラインを整理、調整、監視します。タグを使用して、スケジューリングパラメータと設定で関数を装飾します。
- makeit:最終更新時刻に基づき、必要に応じてRスクリプトを実行する。追加のソフトウェア要件、組織的なオーバーヘッド、構造的な要件はなく、基本Rで実装されています。
- makepipe: 既存のワークフローを、最小限の初期費用で自己文書化されたパイプラインに変換するためのツール群。
- repo:ファイルシステムとの間でのデータの手動による保存/取得を回避するためのデータマネージャー。
- targets:R言語による統計・データサイエンスのためのパイプラインツールキットとして、「targets」パッケージは、関数指向のプログラミングと「Make」のような宣言型ワークフローを統合しています。
パッケージの再現性
Rには、解析に必要な特定のパッケージのバージョンを確保するための様々なツールがあります。例えば、renvは、プロジェクト固有のディレクトリにパッケージをインストールし、現在のパッケージのバージョンの「スナップショット」を「ロックファイル」に記録し、別のマシンでパッケージのセットアップを復元します。
- checkpoint :CRANのタイムマシンを持っているかのように、特定のスナップショットの日付にCRANに存在していたパッケージをインストールすることができます。
- containerit(GitHubのみ):Rセッション、スクリプト、ワークスペースディレクトリ、R Markdownドキュメントをすべての依存関係とともにパッケージ化し、Dockerコンテナで実行します。
- dateback :ソースパッケージの仮想CRANスナップショットのように動作します。特定の日に利用可能だった依存関係のある「tar.gz」ファイルを自動的にダウンロードしてインストールします。
- groundhog:パッケージに依存するRスクリプトの再現性を高めるために、あるスクリプトが実行されるたびに、使用されるパッケージの同じバージョンがロードされるようにします。
- liftr:R Markdown文書のコンテナ化による持続的な再現性のある報告。
- miniCRAN:CRANのようなリポジトリから選択されたパッケージで構成された、内部的に一貫性のあるリポジトリを作成することを可能にします。
- packrat:あなたのプロジェクトが依存しているRパッケージを、分離、移植、再現可能な方法で管理します。
- rang:Rの計算環境を再構築するために、特定の時点におけるRパッケージの依存関係グラフを解決します。
- renv:プロジェクトローカルのRライブラリを作成・管理し、これらのライブラリの状態を「ロックファイル」に保存し、後で必要に応じてライブラリを復元します。
- Require:再現性のあるワークフローを可能にする「install.packages」「remotes::install_github」「version::install.version」「base::require」をラップした「Require」という1つのキーとなる機能があります。
- rix:「Nix」パッケージマネージャーを使用して再現可能な開発環境の作成を簡素化します。
- switchr:インストールされたRパッケージのセットを管理、インストール、切り替えするための抽象化機能を提供します。
プロジェクトのワークフロー
データ分析プロジェクトを成功させるには、多くの場合、統計と視覚化以上のものが必要です。プロジェクトの成熟に合わせてコード、データ、結果を効率的に管理することで、ストレスやエラーを減らすことができます。以下の「workflow」パッケージは、プロジェクトインフラストラクチャを管理したり、再現可能なワークフローを促進したりすることにより、Rプログラマを支援します。
ワークフローユーティリティパッケージは、プロジェクトインフラストラクチャを実装したり、特定の問題を解決するための使い捨て機能を提供します。典型的な例として、usethis :: use_git()はGitリポジトリを初期化し、一般的なRファイルを無視し、すべてのプロジェクトファイルをコミットします。
- cabinets:.Rprofileファイルに書き込まれるプロジェクト固有のディレクトリおよびファイルテンプレートを作成します。
- here:プロジェクトのファイルへのパスを作成します。
- prodigenr:そのプロジェクトの典型的なファイルとともに、プロジェクトのディレクトリ構造を作成します。
- RepoGenerator:RワークショップのGitHubリポジトリの初期化を簡単にするためのプロジェクトとリポジトリを生成します。
- rrtools(GitHubのみ):Rで再現性のある研究を行うのに適した基本的な概要を作成するための指示、テンプレート、および機能。
- starter:新規プロジェクトのスケルトンを新規または既存のディレクトリにドロップすることで、新規プロジェクトを開始し、gitリポジトリを初期化し、「renv」パッケージで再現可能な環境を作成します。
- starters(GitHubのみ):教育、プレゼンテーション、分析、パッケージ開発のためにRプロジェクトディレクトリを設定するのは面倒です。これは、フォルダー構造を作成し、適切なデフォルトを設定することにより、これをショートカットします。
- trackdown:Google DocsでRのMarkdown(またはSweave)文書を共同執筆・編集。
- usethis:手動で実行されるパッケージおよびプロジェクトのセットアップタスクを自動化します。
ワークフローフレームワークパッケージは、プロジェクトの開発中に役立つ整理されたディレクトリ構造とヘルパー機能を提供します。典型的な例として、ProjectTemplate :: create.project()は多くのサブディレクトリで組織化されたセットアップを作成し、ProjectTemplate :: run.project()はsrc /サブディレクトリに保存されている各Rスクリプトを実行します。
- exreport:インタラクティブHTMLとLaTeXの両方での実験結果の分析と自動レポート生成。
- madrat:データ処理の再現性と透明性を改善するフレームワークを提供します。自動メタデータの作成と管理、基本的な品質管理、データキャッシング、ワークフロー管理、データ集約などの機能を提供します。
- makeProject:このパッケージは、Josh Reichによって記述された「Load、Clean、Func、Do」構造のファイルとディレクトリの空のフレームワークを作成します。
- orderly:Rからレポートを注文、作成、保存。
- projects:原稿の作成に焦点を当てたプロジェクトインフラストラクチャを提供します。
- ProjectTemplate:新しいRプロジェクトのディレクトリ構造を自動的に構築する機能を提供します。この構造を使用して、「ProjectTemplate」はデータの読み込み、前処理、ライブラリのインポート、および単体テストを自動化します。
- rcompendium: Rパッケージや研究大要(定義済みのファイル/フォルダ構造)の作成を容易にし、ユーザーがファイルの整理に時間を費やすことなく、コードや分析に集中できるようにします。
- reportfactory: 複数のR Markdownレポートを扱うためのインフラを提供します。これには、出力の自動キュレーションとタイムスタンプ、パラメータ化、依存関係を管理するヘルパー関数の提供などが含まれます。
- represtools:再現可能な調査ツールは、分析ディレクトリ構造とワークフローの作成を自動化します。典型的な分析ワークフローステップをカプセル化するRマークダウンスケルトンがあります。関数は、あるステップから別のステップにデータを渡すことができる適切なモジュールを作成します。
- TAF:再現性のある科学的分析に使用されるデータ、方法、結果を整理するための一般的なフレームワーク。TAF解析は、4つのスクリプト(data.R、model.R、output.R、report.R)を順次実行することで構成されています。
- tinyProject:データ分析プロジェクトに役立つファイルとフォルダーを作成し、データ、スクリプト、および出力ファイルを管理する機能を提供します。
- worcs:「R」で再現性のある透明な研究プロジェクトを作成します。このパッケージは、オープンサイエンスのベストプラクティスに基づいた段階的な手順である、科学におけるオープン再現性コードのワークフロー(WORCS)に基づいています。
- workflowr:リテラシープログラミング(「knitr」と「rmarkdown」)とバージョン管理(「git2r」を介した「Git」)を組み合わせて、タイムスタンプ、バージョン、および文書化された結果を含むWebサイトを生成することにより、分析プロジェクトのワークフローを提供します。
書式設定ツール
formatR と styler は,Rコードのフォーマットに使用できます。
highlightとhighrは、カラーRコードに使用できます。
humanFormat、lubridate、prettyunits、rprintfは、より優れた形式のデータに関数を持っています。
フォーマットコンバータ
panderは、Pandoc’sマークダウンにRオブジェクトをレンダリングするために使用することができます。knitrは、Markdown、HTML、LaTex、PDF、Wordのようなフォーマット間のドキュメントを変換するためのPandocのインストールされたバージョンを呼ぶことができるpandoc関数を持っています。tthは、TeXからHTML / MathMLへの変換を容易にします。
オブジェクトキャッシュパッケージ
Sweaveとknitrを使用する場合、ドキュメントが再処理されるなら(すなわち、デバッグ中)、それは時間がかかるコードチャンクの結果をキャッシュすることが有利となります。knitrは、オブジェクトキャッシュを容易にし、BioconductorパッケージweaverはSweaveで使用することができます。
キャッシング/アーカイブを容易にする非識字プログラミングパッケージは、archivistとR.cache、reproducible、storrです。
ピンバック:R言語 CRAN Task Views | トライフィールズ