R

Rでエラー時にスタックトレースを自動出力する

R
結論 Rバージョン4.0以上で、次のコードを実行しておくとエラー時に自動でスタックトレースが出力されるようになります。 globalCallingHandlers(error = function(e) { capture.output(traceback(6), file = stderr()) }) 動作 次のような内容のファイル example.R があるとします。 # example.R f <- function() { g() } g <- function() { h() } h <- function() { stop("Error") } これを次のようにして

Rの条件ハンドリングを理解する

R
JavaやPythonなど、多くの言語には「例外ハンドリング」の仕組みが備わっています。Rにはこれに代わる仕組みとして 「条件ハンドリング」 があります。これについてコードを書いて実験しながら理解していきます。 エラー、警告、メッセージ Rにはエラ

renv の explicit なスナップショットタイプと DESCRIPTION ファイル

R
要約 renv のスナップショット(バージョン固定)にはいくつかのタイプがあります。 そのうち "explicit" なスナップショットタイプがおすすめです。 この方法では対象となるパッケージを DESCRIPTION ファイルで明示的に指定します。 プロジェクトの依存関係を宣言的に記述することができ

R のパイプラインツール targets を使う意義

R
R のパイプラインツール targets をデータ分析プロジェクトで採用する意義と、そのときに推奨される関数型のプログラミングスタイルについてまとめました。 targets とは targets は “R による統計・データサイエンスのための Make 風パイプラインツール” です。 R のパイプラ

Target Markdown 検証メモ

R
R パッケージ targets の次期バージョン 0.5.0 でリリース予定の Target Markdown の動作について検証しました。 targets とは targets は R のパイプラインツールです。 開発停止となった drake の後継プロジェクトという位置づけになっています。 targets の使い方を理解するには、公式ユーザーマニュアルにあるチ

【R】スコープを限定してパッケージをインポートする

R
概要 R でパッケージを使うとき、library() や require() でロードする代わりに import::here() や box::use() を使うとスコープを限定してパッケージの関数をインポートすることができます。これは関数の副作用を避けるのに役立ちます。 課題 例えば、次のような関数 process_data() を考えます。この関

RStudio のオプション設定を dotfiles で管理する

概要 dotfiles とは, ファイル名が “.” (ドット) から始まるシステム設定ファイルの総称です. システム開発者の間では dotfiles を Git リポジトリで管理し, 環境構築に利用するプラクティスがあります. RStudio ではバージョン 1.3 以降で設定情報がファイルで管理されるようになったので,

RStudio Server で自動的にプロジェクトが開くようにする裏技

R
以前の記事 では Docker で RStudio Server を起動する方法について触れました。 このとき、ブラウザで RStudio Server に接続した際に自動的にプロジェクトが開くようにできるとさらに便利です。 これは公式に提供されている機能ではないのですが、隠しファイル /home/rstudio/.rstudio/projects_settings/switch-to-project にプロジェクトのパスが書き込
renv と Docker の相互運用パターン

renv と Docker の相互運用パターン

概要 R のプロジェクトで renv(パッケージ管理システム)と Docker を同時に使う利用法として3種類のパターンを取り上げます。 多くの分析プロジェクトでは renv パッケージキャッシュを外から Docker コンテナにマウントする “外付けパッケージキャッシュパタ