今回は、文字列の結合に使えるpaste関数を紹介します。
文字列の結合
paste関数
pasteはRの標準関数の一つで、文字列の結合に使えます。
次のサンプルデータで使用例を見てみましょう。
時間(hour)と分(minute)が入ったデータです。
1 2 3 4 |
# サンプルデータの作成 hour <- c("2", "10", "7") minute <- c("10", "00","28") df <- data.frame(hour, minute) |
hour | minute |
---|---|
2 | 10 |
10 | 00 |
… | … |
このデータで、例えばhour「2」とminute「10」で「2:10」となるように間に「:」を入れて結合してみましょう。
pasteは
paste(結合したい文字1, 結合したい文字2, sep=接続記号)
と書きます。
1 2 3 4 |
# pasteで結合 paste(df$hour, df$minute, sep = ":") [1] "2:10" "10:00" "7:28" |
sepはデフォルトでは半角スペースが設定されているので、sepを指定しない場合は半角スペースで文字列を結合することになります。
1 2 3 4 |
# pasteで結合 paste(df$hour, df$minute) [1] "2 10" "10 00" "7 28" |
paste0関数
文字列を結合するとき、そもそも接続記号は使わないということも多いかと思います。
その場合はpaste関数で毎回「sep=””」を指定する必要があり、少し面倒です。
そんな時に使えるのがpasete0関数です。
paste0は
paste0(結合したい文字1, 結合したい文字2)
と書きます。
次のサンプルデータで使用例を見てみましょう。
1 2 3 4 |
# サンプルデータの作成 hour <- c("2時", "10時", "7時") minute <- c("10分", "00分","28分") df <- data.frame(hour, minute) |
hour | minute |
---|---|
2時 | 10分 |
10時 | 00分 |
… | … |
1 2 3 4 |
# paste0で文字列結合 paste0(df$hour, df$minute) [1] "2時10分" "10時00分" "7時28分" |
間に半角スペースがなく結合されていますね!
文字列を3つ以上結合する
paste関数、paste0関数ともに3つ以上の文字列をつなげることも可能です。
paste(結合したい文字1, 結合したい文字2, 結合したい文字3, ・・・, sep=接続記号)
のように結合したいものを並べていけばOKです。
次のサンプルデータで使用例を見てみましょう。
1 2 3 4 5 |
# サンプルデータの作成 hour <- c("2", "10", "7") minute <- c("10", "00","28") second <- c("11", "00", "59") df <- data.frame(hour, minute, second) |
hour | minute | second |
---|---|---|
2 | 10 | 11 |
10 | 00 | 00 |
… | … |
1 2 3 4 |
# pasteで文字列結合 paste(df$hour, df$minute, df$second, sep = ":") [1] "2:10:11" "10:00:00" "7:28:59" |
今回は以上です。
pasteだけ知っておけば結合は可能ですが、paste0も難しくないので上手に使い分けていきましょう!
コメント