文字列操作の準備.R

要約

・ソフトウェア間をうまくつなぐためのR
・データクリーニングの個人的本丸は文字列操作
・stringr先生に師事しよう

前回の記事

そもそも何してるのか(おさらい)

 今の主な仕事の流れはこう。

  1. 複数のソフトウェアが吐き出すデータをcsv/xlsxで出力
  2. 分析用ソフトウェアで読み込めるようにデータを前処理
  3. 場合によっては複数データのマージもする
  4. 分析用ソフトウェアで分析して、グラフ等を出力
  5. 報告資料を作る(白目)

 時間を割きたいのは4.のところなのだけれど、1.のソフトウェアと4.のソフトウェアが別会社のものでデータ形式がバラバラだし、ヘタをすると文字コードの違いでドツボにはまり込んでしまうことがある。
 さらに2.や3.をExcelでやってるので、データが大きくなると会社支給よわよわPC(再掲)では何ともならなくなってきている。
 加えて、従来は数値データだけだったのが、テキストデータそのものを分析する必要がでてきて(というのがRを選んだ副要因でもあるのだけれど)、ちょっと簡単にはいかなくなったなというところで、Rを使い始めたのだった。

データは取り込んだ、次は値の整形だ

 例えば、桁数をそろえたり、特定の文字を付加したり、日付をyyyy/m/dからyyyy-m-dにするとか、1.の出力データを4.で利用するには細かい整形が必要になる。
 最も面倒なのは、1要素(Excelならセル)に複数の値を区切り文字でつないで一つにして格納するというローカルルールだ。
 1要素に1つの値があるならExcelにだって簡単にできる。
 複数の値がある場合、バラシて整形して再結合してとなるのだけれど、実際にマクロを組んでみるとループの入れ子は多いし、再帰呼び出し使ったりするしで組むのが結構煩雑になる。
 再帰呼び出しは苦手なのよ。小学生のころからBASICとか触ってたんだけど、今でもよく分かんない。

 それはともかくExcelでは煩雑だったので、そこをRに持っていきたいというのが主旨だ。それができるなら他の整形もRでできるだろうし、Excelではやりづらい2.の工程がRに置き換えられる
 吾輩はR初心者である。R初心者だからRでできるかどうかは分からない。
 ただ、統計屋さんが使ってるからにはデータの整形(クリーニング)は普通にやっているだろうし、だったらRでできるはずなのだ。
 知らんけど。

文字列操作のその前に

 今扱っているデータの値は、ほとんどが文字列形式だ。だから文字列操作を覚えなければならない。
 とある規則に従って書かれた文字列が多いから、正規表現も覚えれば多分楽になるだろう。
 で、関数は何使えばいいの?

 stringrパッケージである。
 ほかにも色々検索してみたのだけれど、R標準の関数ではやりにくいらしい。じゃあ、何も考えずにstringr様にすがってみよう。
 とはいえ、Excelにはない機能の関数が盛りだくさんだ。
 ここは必要そうな関数を直感でピックアップして、ひとつひとつ挙動を確認していこう。検索・置換と書式変更と結合と他に何があったっけ。

以上。

この記事が気に入ったらサポートをしてみませんか?