[R]文字列を連結する
paste関数を使う。オプションを特に指定しないと空白(0x20)で引数に与えた文字列リテラルを連結する。単純に連結したいのであればsepオプションに""を指定する。
> s1 <- "ABC"
> s2 <- "あいう"
> s3 <- "阿伊宇abc"
> paste(s1, s2, s3)
[1] "ABC あいう 阿伊宇abc"
> paste(s1, s2, s3, sep = "")
[1] "ABCあいう阿伊宇abc"
paste0関数を使ってもよい。paste0関数はpaste関数のsepオプションがデフォルトで""を指定された状態で実行される。
> paste(s1, s2, s3, sep= "") [1] "ABCあいう阿伊宇abc" > paste0(s1, s2, s3) [1] "ABCあいう阿伊宇abc"
paste関数もpaste0関数も、引数は文字列に強制変換してから処理する(最初にas.character関数を使用するのと同等)。
> paste(1:10)
[1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10"
> paste(c(1.1, 2.2, -3.3, 4.44))
[1] "1.1" "2.2" "-3.3" "4.44"
引数の処理は少々複雑で、与えた引数の文字列ベクトルを連結することもできるし、その文字列ベクトル内の文字列を連結させることもできる。前者の区切り文字はsepオプションに、後者の区切り文字はcollapseオプションに指定する。二つを同時にも処理することができる。
> s1 <- c("ABC", "123", "あいう")
> s2 <- c("DEF", "456", "えお")
> paste(s1, s2, sep = "")
[1] "ABCDEF" "123456" "あいうえお"
> paste(s1, s2, sep = "", collapse = "")
[1] "ABCDEF123456あいうえお"
> paste(s1, s2, sep = ";", collapse = "@")
[1] "ABC;DEF@123;456@あいう;えお"
> paste0(s1, s2, collapse = "")
[1] "ABCDEF123456あいうえお"
> paste0(s1, s2, collapse = "@")
[1] "ABCDEF@123456@あいうえお
« [R]ウェブサイトの表を読み込む | トップページ | [R]パイプを使う »
「R(文字と文字列)」カテゴリの記事
- [R]同じ文字列を繰り返した文字列を作成する(2026.02.02)
- [R]文字列が数値に変換できるかどうか判定する(2025.12.31)
- [R]文字列の長さを得る(2025.12.30)
- [R]空白を追加した指定の長さの文字列を得る(2025.12.26)
- [R]文字列型ベクトルの要素を連結して文字列を作る(2025.12.17)

コメント