Rで文字列を編集したい
Rで図表を作るとき、複数のパネルがあったりすると、それぞれのパネルに名前を付けてあげると見やすいです。ちょっとしたデータの確認であれば大文字・小文字など気にしなくともよいのですが、いざ論文の図表に使うとなったりすると、頭文字も小文字になっていたり、あるいはすべて大文字になっていると厄介です。エクセルで直してもいいのですが、同じ作業の繰り返しになるので、とても効率的とは思えません。こんなときは、パッケージstringrが役に立ちます。非常に簡単ですので、いくつかの例をあげながら使ってみます。
頭文字だけ大文字に変える
頭文字だけ大文字に変えるパターンは以下のスクリプトで可能です。ここでは、toupper(大文字に変換)とstr_sub(文字列から特定の文字を抜き出す)がメインの関数になります。str_subは、文字列のうち取り出したい最初と最後の文字番号(先頭文字からの順番)を指定すると、その部分だけ切り出してくれます。
library(stringr) # sample strings x <- c("abc", "bcd", "cde") > x [1] "abc" "bcd" "cde" # extract initial character tmp1 <- toupper(str_sub(x, start = 1, end = 1)) > tmp1 [1] "A" "B" "C" # extract second to last character tmp2 <- str_sub(x, start = 2, end = max(str_length(x))) > tmp2 [1] "bc" "cd" "de" # merge X <- paste0(tmp1,tmp2) > X [1] "Abc" "Bcd" "Cde"
頭文字以外を小文字にする
同じ要領で、すべてが大文字の文字列に対しても、頭文字以外を小文字にすることも可能です。toupper関数の代わりに、tolower関数を使います。
# sample strings x <- c("ABC", "BCD", "CDE") > x [1] "ABC" "BCD" "CDE" # extract initial character tmp1 <- str_sub(x, start = 1, end = 1) > tmp1 [1] "A" "B" "C" # extract second to last character tmp2 <- tolower(str_sub(x, start = 2, end = max(str_length(x)))) > tmp2 [1] "bc" "cd" "de" # merge X <- paste0(tmp1,tmp2) > X [1] "Abc" "Bcd" "Cde"
More from my site
SPONSOR LINK