« [R]ウェブサイトの表を読み込む | トップページ | [R]パイプを使う »

2023年3月30日 (木)

[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]ウェブサイトの表を読み込む | トップページ | [R]パイプを使う »

無料ブログはココログ

■■

■■■