Rで文字列の大文字・小文字を編集する

Rで文字列を編集したい

Rで図表を作るとき、複数のパネルがあったりすると、それぞれのパネルに名前を付けてあげると見やすいです。ちょっとしたデータの確認であれば大文字・小文字など気にしなくともよいのですが、いざ論文の図表に使うとなったりすると、頭文字も小文字になっていたり、あるいはすべて大文字になっていると厄介です。エクセルで直してもいいのですが、同じ作業の繰り返しになるので、とても効率的とは思えません。こんなときは、パッケージstringrが役に立ちます。非常に簡単ですので、いくつかの例をあげながら使ってみます。

SPONSOR LINK

頭文字だけ大文字に変える

頭文字だけ大文字に変えるパターンは以下のスクリプトで可能です。ここでは、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"
Spread the love