R関連‎ > ‎

文字列(character vector)処理

ベクトルが最小単位 => それだけで結構、コンガラガル。

paste
大きさ1のcharacter vectorを作る。(大きさが膨らまないというほうが正確な表現か)
paste( "aaa", "bbb") 
> "aaa bbb"
> paste("a", 1:5, sep="")
[1] "a1" "a2" "a3" "a4" "a5" #5個のベクトルとしてできる。
> paste("a", 1:5, sep="", collapse=",")
[1] "a1,a2,a3,a4,a5"         #大きさ1のベクトル。普通の言語の文字列はこちら

c
combine, concatenateする。 大きさは付加されるにつれ、インクリメントされる。
 a <- c(c("a","b"),c("c","d"))
> length(a)
[1] 4
> a
[1] "a" "b" "c" "d"

strsplit

大きさ1の文字列を、切って、その分の大きさのベクトルに。ベクトルにも適用可能(というか元々ベクトル)なので、
(ベクトルの大きさ) x 分割した数 という掛け算でできる、大きさになる。
> strsplit(c("a b c","d e f")," ")
[[1]]
[1] "a" "b" "c"
[[2]]
[1] "d" "e" "f"
> length(strsplit(c("a b c","d e f")," ")[[1]])
[1] 3

grep, sub
文字列を検索して、一致があるかどうかを返すgrep, 一致部分を置き換えてくれるsub

match
一致しないとき、NAが帰ってくる。
一致しない文字列要素を抜き出すという状況を考えて、
> m <- c("ab", "ac", "ad")
> n <- c("ab","ac")
> m[is.na(match(m,n))]
[1] "ad"




Comments