R の mutate 関数: データフレームに列を追加する

UBC/informatics/r/mutate

このページの最終更新日: 2023/11/23

  1. 概要: mutate() 関数の基本的な使い方
  2. if_else: mutate() 関数で、条件を指定して列を追加する
  3. str_detect: 特定の文字列を含むかどうかで真偽を判別する

広告

概要: mutate() 関数の基本的な使い方

R の mutate() 関数は、tidyverse パッケージ に含まれる関数である。データフレーム に列を追加する。

組み込みデータセット の ToothGrowth を使ってみよう。

ToothGrowthデータセット

基本的な使い方は、mutate(データセット, 列名 = 条件) である。

単純に一つの値を追加する場合。

ToothGrowthデータセット mutate関数 ToothGrowthデータセット mutate関数

既存の列を使用。len という列の 2 倍の数値をもつ列を作成。

ToothGrowthデータセット mutate関数

if_else: mutate() 関数で、条件を指定して列を追加する

条件指定には、if_else を使う方法が便利である。if_else(条件式, true = 真の場合の値, false = 偽の場合の値) とする。

ToothGrowthデータセット mutate関数

二つの列が同一かどうかを調べるには、if_else(列1 == 列2, true = 0, false = 1) として新しい列を作成し、その列の合計値や最大値を求めればよい。

条件分岐していく場合の書き方

場合分けを重ねていく場合には、false のところに次の if_else が来るように書く

以下の例では、まず len が 10 より大きいかを調べ、真なら Long を記入。偽の場合は、次に 8 より大きいかを調べる。ここで 10 > len > 8 と書きたくなるかもしれないが、最初の判定で 10 より小さいことはわかっているので、len > 8 のみで十分である。10 > len > 8 と指定してしまうと、スクリプトがエラーになるだけでなく、理論的に値がちょうど 10 のときに判定できなくなる。

8 より大きい場合には Middle、そうでない場合は Short となる。最後の , false = の位置が間違いやすいので注意。最後の if_else のカッコの中に入る。

ToothGrowthデータセット mutate関数

str_detect: 特定の文字列を含むかどうかで真偽を判別する

特定の文字列を含むかどうかで判別するときは、str_detect と組み合わせる。以下のスクリプトで, supp が VC を含む場合は TURE、そうでない場合は FALSE という列が追加される。

ToothGrowthデータセット mutate関数
広告

References

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。