はじめに
こんにちは。クリスマスも過ぎいよいよ年末感が出てきましたので、今回は2025年に使ったツールを振り返ってみたいと思います。
Positron
まずはIDEのPositronです。Positronが正式にリリースされ、RとPythonの両方をサポートする強力なIDEとして注目を集めました。
RStudioからの移行も割としやすく、VSCodeベースでありながらRStudioのような使い勝手を提供してくれます。
個人的には拡張機能を通じてコードを書きやすくなったのが大きいと思います。GitHub Copilotも利用できますし、チャットをいちいちブラウザやアプリで開かなくてもIDE内で完結できるのは便利です。
Positronについては以下の記事で詳しく紹介しています。
DuckDB
続いて組み込み型データベースのDuckDBです。今年Rを使う仕事ではもれなく使っていたかもしれません。
DuckDBはRやPythonでパッケージをインストールするだけで使うことができ、Rの場合はdplyrのような感覚でSQLクエリを実行できるのが魅力です。
Rのメモリに読み込まずにデータを読み込めるため、大規模データの処理にも向いています。
library(DBI)
library(dplyr)
# DuckDBに接続
con <- dbConnect(duckdb::duckdb())
# Rのメモリに読み込まずにCSVをクエリ可能
tbl(con, "read_csv('data/iris.csv')") |>
filter(Species == "setosa") |>
collect()
# A tibble: 50 × 5
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
<dbl> <dbl> <dbl> <dbl> <chr>
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
7 4.6 3.4 1.4 0.3 setosa
8 5 3.4 1.5 0.2 setosa
9 4.4 2.9 1.4 0.2 setosa
10 4.9 3.1 1.5 0.1 setosa
# ℹ 40 more rows
collect()を実行するまではRのメモリにデータが読み込まれず、DuckDB上で実行されるため効率的です。collect()をして初めてRのメモリにデータが読み込まれます。
DuckDBについては以下の記事で詳しく紹介していますので、よければご覧ください。
Polars
polarsの発見は今年の大きな収穫でした。Pythonでデータ処理を行うためのライブラリでpandasと似ていますが、爆速です。
速いので下処理はPythonでやってしまおうかなと思っているほどですが、幸いにもRからもpolarsおよびtidypolarsパッケージを通じて利用可能です。
特にtidypolarsはdplyrの多くの関数をサポートしており、これまでの使い方をしているだけで処理速度が向上します。対応していない関数は自動でdplyrにフォールバックするため、使い勝手も良好です。
library(tidyverse)
library(tidypolars) # 後に読み込み
polarsもtidypolarsもCRANには公開されていないのでインストールには一工夫必要ですが、以下の記事で詳しく紹介しています。
余談ですが、自分はpolarsを「ポーラーズ」と読むものと思っていたのですが、先日Japan.Rに参加した際に登壇者の方が「ポーラス」と読んでらっしゃり、びっくりしました。ググったところだと、イギリス英語が「ポーラス」、アメリカ英語が「ポーラーズ」に近いかなと思います。開発チームはオランダにあるようなので、イギリス英語なのかもしれません。
PostgreSQL
続いて、PostgreSQLです。学生時代はSQLに触る機会はなく、社会人になってから初めてSQLを使ったのですが、世界が広がりましたね。
まず使っているデータの規模が学生時代とは違うので学生が使うべきかと聞かれると別に…という感じですが、個票データを使ったりする場合にはPostgreSQLのようなRDBMS(Relational Database Management System)が便利かなと思うようになりました。
DuckDBとの使い分けはどうなんだよという話ですが、例えばDuckDBは組み込み型データベースなのでサーバーを立てる必要がなく、ローカルで完結するのが強みです。一方でPostgreSQLはサーバー型なので複数人でデータを共有したり、アクセス制御を行ったりするのに向いているのではないでしょうか。
また、PostgreSQLにはpgAdminのようなGUIツールもあり、データのイメージを掴みやすいのも良い点です。
さらに、個人的にはPostGISという地理空間データを扱う拡張機能が便利で、地理空間データをSQLで処理できるのが魅力です。Rだと重い処理もSQLで実行できるので効率的です。
PostgreSQLについては以下の記事で詳しく紹介しています。
uv
最近はPythonの仮想環境構築のため、Rust製のuvという仮想環境管理ツールを使い始めました。
uvは非常に高速かつシンプルな設計で、プロジェクトごとに仮想環境を簡単に作成・管理できます。
uv init my_project
cd my_project
uv add pandas numpy
uvについては以下の記事で詳しく紹介しています。
おわりに
これまでもちょこちょこ記事にしてきたので目新しいことは特にないのですが、2025年に使ったツールを振り返ってみました。
新しいものはどんどん取り入れていきたいスタイルなので、来年も色々試していきたいと思います。もしおすすめのツール等あればぜひご教示いただきたいです。
引き続きよろしくお願いいたします!