R (tidyverse), mutate 列を変更、修正(上書き)

mutate() 関数を使って、列に変更を加える場合、同じ列名を指定することで、列の内容を上書きすることもできます。下記の例では、 str_to_lower() 関数を使って、全て小文字の Symbol に変換して、元の Symbol 列に格納しています。

> result_data
# A tibble: 3 x 5
  Id    Symbol Description   Sample1 Sample2
  <chr> <chr>  <chr>           <dbl>   <dbl>
1 id1   AAA    lorem ipsum a       1       4
2 id2   BBB    lorem ipsum b       2       5
3 id3   CCC    lorem ipsum c       3       6
>
>
> result_data %>% mutate(Symbol = str_to_lower(Symbol))
# A tibble: 3 x 5
  Id    Symbol Description   Sample1 Sample2
  <chr> <chr>  <chr>           <dbl>   <dbl>
1 id1   aaa    lorem ipsum a       1       4
2 id2   bbb    lorem ipsum b       2       5
3 id3   ccc    lorem ipsum c       3       6

この場合は、新たに列が追加されることはありません。

stringr パッケージ

文字列の操作に便利な関数は、 stringr パッケージに含まれています。(tidyverse パッケージの一部であるため、tidyverse パッケージを読み込むと、 stringr パッケージも使える状態になります。)置換や、連結、また、正規表現も使えます。

検出 (str_detect), 置換 (str_replace), 連結 (str_c), 大文字に変換(str_to_upper), 小文字に変換 (str_to_lower), 先頭だけ大文字 (str_to_title)

https://stringr.tidyverse.org

 

投稿者:

Atsushi Doi

株式会社セルイノベーター、主任研究員。理学博士。山口大学大学院理工学研究科修了。東京大学医科学研究所ヒトゲノム解析センターの特任助手を経て、株式会社GNIに主任研究員として勤務。その後、株式会社セルイノベーターの立ち上げに参加し、現在に至る。専門は、バイオインフォマティクス、おもにシステムバイオロジー。