10
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?

R言語Advent Calendar 2024

Day 4

Rコードにお決まりのlibrary(tidyverse)を簡便に記載する方法

Last updated at Posted at 2024-12-03

はじめに

Rな人たちにはtidyverse信者が多いと感じております。私もそんな1人です。パイプ(%>%,|>)を使えるようになるという面が大きいのでしょうか。とにかく、Rコードの最初に"library(tidyverse)"と書きたい病が発症している皆様(私?)のためにlibrary(なんちゃら)を直打ちしなくてもよい簡単な方法をご紹介します。

higeme.R
library(conflicted)
library(tidyverse)
conflict_prefer("filter", "dplyr")

ちなみに私はこの3行を必ず記載しています。1行目はボブさん(@bob3bob3)のレクチャーで会得したものです。これにより複数のライブラリが使っている関数の場合はどちらのライブラリ関数なのか明確にする必要があり、コードの曖昧さを排除します。また同時に下記の警告文が表示されなくなります。ただ、このままだと頻出のfilter()関数がconflicted package errorになってしまいますので、単にfilter()と表記したときはdplyr::filter()のことだよ、ということを指定するのが3行目のコードです。

── Conflicts ──────────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package to force all conflicts to become errors

2つの方法

  1. .Rprofileを使う
  2. スニペット機能を使う

1.の方法の方が優秀で、例えばRstudioを起動した時点で上記"higeme.R"の3行が実行された状況から始まります。自動化の面ではより進んでいますが、環境により設定方法がやや異なり初期設定に苦労することがあること、他人とコードを共有する場合は、結局あとでlibrary(tidyverse)を追記しなければならないことなどデメリットもあります。今回はより簡便で間違いの起こりにくい2.の方法についてのみ触れます。

スニペットとは

詳しい説明は他のページをgoogle検索してご参照ください。基本的には、「よく使う長いコードブロックを、ショートカット名を作って記憶しておく」という説明が一番わかりやすいでしょうか。

スニペットを使って簡単に入力する方法(Rstudio篇)

  1. RStudioの「Tools > Global Options > Code > Edit Snippets」から設定します
    スクリーンショット 2024-12-02 143830.jpg
  2. "Edit Snippets"画面に遷移しますので、下のように入力します。この例はスニペット名(本記事ではスニペットのショートカット名、prefix名を「スニペット名」と表記します)として"mazuha"を設定しています
edit snippets.
snippet mazuha
	library(conflicted)
	library(tidyverse)
	conflict_prefer("filter", "dplyr")

3.この設定をsaveして、Source Paneに"mazuh"までの先頭5文字を入力するとスニペット選択肢が出てきます。これを選択すると、指定の3行が入力されるという仕組みです

image.png

あるいは"mazuha"と入力しtabボタンを押せば、同じく3行が入力されます。

スニペットを使って簡単に入力する方法(Visual Studio CodeやPositron篇)

実は私は普段RstudioではなくPositronを利用しています。PositronとVSCodeのスニペット設定は同じ方法となります。

  1. コマントパレットを開きます
  2. "Snippets: Configure Snippets"を開きます。"snip"あたりまで入力すると、選択できるはずです
  3. 新規スニペットを作成し、下記.jsonのように入力し、saveします。なお、prefix:がスニペット名となります
.json
{
  "Insert libraries": {
    "prefix": "mazuha", 
    "body": [
      "library(conflicted)",
      "library(tidyverse)",
      "conflict_prefer('filter', 'dplyr')"
    ],
    "description": "Insert commonly used libraries"
  }
}

実行方法はRstudioの場合と同じで、選択肢の中からクリックするか、スニペット名+tabキーで入力できます。

スニペット名のTips

Rstudioの初期設定では、5文字以上入力しないとこのように関数やスニペットの選択肢が出てきませんので、選択肢を見てから確定したい方はスニペット名を5文字以上にするとよいでしょう。逆に"スニペット名+tab"の方法を使いたいという方は、むしろスニペット名を5文字未満の短い名前にするとよいでしょう。

10
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
10
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?