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"  

こんな感じで書くのがよかろう。