Rの正規表現で文字列分割〜複数スペースの場合〜
今までよくわかってなかったから、いっつもperl=TRUEのオプション指定して正規表現書いていたが、こうやって書けるんだなぁって話。
でいうところの
幾つかの名前付き文字クラスが予め定義されている(ロケール依存)。これらは実際は [ [:alnum:] ] のように、さらに鈎括弧に入れて使う。
の、「さらに鈎括弧に入れて使う」を見落としていたため動かない病に侵されていたようだ。
以下は、単にある文字列からスペースを全削除しつつ文字列をスペースで分割するっていうコード。
もちろんFoward-pipe演算子(%>%)を使うためにdplyrパッケージは必須だ。
> library(dplyr) > c("ABC EJDLK ZZZ") %>% + strsplit("[[:space:]]") [[1]] [1] "ABC" "" "" "" "" "" "EJDLK" "" "" "" "" [12] "ZZZ"
おっと、これだとスペースがまばらに残ってしまうので、
> c("ABC EJDLK ZZZ") %>% + strsplit("[[:space:]]+") [[1]] [1] "ABC" "EJDLK" "ZZZ"
こんな感じで書くのがよかろう。