文字列

文字定数 (character constants)

文字定数は、単一引用符 (') または二重引用符 (") で囲んで表現します。どちらの引用符も有効ですが二重引用符が推奨され、単一引用符は二重引用符内での区切りに使用するようにします。R: Quotes

> print("ABC")
[1] "ABC"

> print('ABC')
[1] "ABC"

> print("A'B'C")
[1] "A'B'C"

ところでバッククォート (`) は、非標準の変数名を記述するのに用いられます。

> a b <- 5
 エラー:  想定外のシンボルです  in "a b"

> `a b` <- 5
> print(`a b`)
[1] 5

エスケープ シーケンス (escape sequences)

バックスラッシュに続ける形式で記述します。

表記 内容
\n newline
\r carriage return
\t tab
\b backspace
\a alert (bell)
\f form feed
\v vertical tab
\\ backslash \
\' ASCII apostrophe '
\" ASCII quotation mark "
\` ASCII grave accent (backtick) `
\nnn character with given octal code (1, 2 or 3 digits)
\xnn character with given hex code (1 or 2 hex digits)
\unnnn Unicode character with given code (1--4 hex digits)
\Unnnnnnnn Unicode character with given code (1--8 hex digits)
R: Quotes

文字数の計数

nchar(
    x,
    type = "chars",
    allowNA = FALSE,
    keepNA = NA)
R: Count the Number of Characters (or Bytes or Width)
> nchar("ABC")
[1] 3

> nchar("あいう")
[1] 3

書式化

format(x, ...)
R: Encode in a Common Format

文字列の連結

paste (..., sep = " ", collapse = NULL)
paste0(..., collapse = NULL)
R: Concatenate Strings
> paste("AA", "BB")
[1] "AA BB"


> paste("AA", "BB", "-") # 連結文字はsep=と記述しないと、その文字が末尾に連結される
[1] "AA BB -"

> paste("AA", "BB", sep="-")
[1] "AA-BB"


> a <- "A"
> b <- "B"
> (c <- paste0(a,b))
[1] "AB"

既定では文字間には空白が挿入されるため、これが不要ならばsep=""として空文字を指定するか、paste0()を用います。

> paste("AA", "BB", sep="")
[1] "AABB"

> paste0("AA", "BB")
[1] "AABB"

文字列の分割

strsplit(
    x,
    split,
    fixed = FALSE,
    perl = FALSE,
    useBytes = FALSE)
R: Split the Elements of a Character Vector