テーブルの列を変更(文字列)
前回、テーブルの列に含まれるデータを変更する例として、足し算や、比 (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 は、遺伝子名の変換に便利です。ヒトの遺伝子名は、全て大文字ですが、マウスは先頭だけ大文字なので、これで対応関係が取れます。
この記事が気に入ったらサポートをしてみませんか?