文字列操作の準備.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にはない機能の関数が盛りだくさんだ。
ここは必要そうな関数を直感でピックアップして、ひとつひとつ挙動を確認していこう。検索・置換と書式変更と結合と他に何があったっけ。
以上。