見出し画像

テーブルの列を変更(文字列)

前回、テーブルの列に含まれるデータを変更する例として、足し算や、比 (ratio) の計算結果を紹介しました。tidyverse に含まれる関数を使うと、計算だけでなく、文字列の変更も行うことができます。

文字列を小文字に変更

下記のようなデータがあるとします。(以前、使用したメタデータの例です。)

> meta_data
# A tibble: 4 × 3
  Id    Symbol Description
  <chr> <chr>  <chr>
1 id1   AAA    lorem ipsum a
2 id2   BBB    lorem ipsum b
3 id3   CCC    lorem ipsum c
4 id4   DDD    lorem ipsum d

このうち、シンボル列 (Symbol) に含まれる文字列を、現在の大文字から、すべて小文字のスタイルに変更したいとします。このようなケースでは、tidyverse に含まれる stringr   パッケージの str_to_lower() 関数が便利です。(str = string = 文字列なので、「文字列を小文字に」という関数です。)

mutate を使って、 mutate("Symbol" = str_to_lower(Symbol)) と書けます。(もとの Symbol に上書きしてます。)

> meta_data %>% mutate("Symbol" = str_to_lower(Symbol))
# A tibble: 4 × 3
  Id    Symbol Description
  <chr> <chr>  <chr>
1 id1   aaa    lorem ipsum a
2 id2   bbb    lorem ipsum b
3 id3   ccc    lorem ipsum c
4 id4   ddd    lorem ipsum d

stringr パッケージ

stringr パッケージには、ほかもに文字列操作に便利な関数がそろっています。検出 (str_detect), 置換 (str_replace), 連結 (str_c), 大文字に変換(str_to_upper), 小文字に変換 (str_to_lower), 先頭だけ大文字 (str_to_title) など。

*初めに、 library(tidyverse) として読み込んだ時点で、 stringr パッケージも読み込まれます。個別に読み込む必要はありません。

こちらのチートシートにまとめられているので、すぐに参照できるようにしておくと良いです。

str_to_title は、遺伝子名の変換に便利です。ヒトの遺伝子名は、全て大文字ですが、マウスは先頭だけ大文字なので、これで対応関係が取れます。

この記事が気に入ったらサポートをしてみませんか?