Mコマンド入門
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Mコマンド入門

on

  • 139 views

TokyoR 44回のLTです。

TokyoR 44回のLTです。

Statistics

Views

Total Views
139
Views on SlideShare
106
Embed Views
33

Actions

Likes
1
Downloads
3
Comments
0

1 Embed 33

https://twitter.com 33

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Mコマンド入門 Presentation Transcript

  • 1. RユーザのためのMコマンド 1 TokyoR #44 LT @weda_654
  • 2. 自己紹介 ✓ TwitterID : weda_654 ✓ 所属 : GoogleMapとAWSとデータ分析の会社 ✓ 職 : 前処理蓄(略してショチク) ✓ 使用言語 : R(メイン), Python(たまに) ✓UNIXによる前処理の修行中ですこんなアイコン 2
  • 3. 注意事項 本資料は個人の意見・認識によるものです 所属する組織の意見・認識とは無関係です ご了承おねがいいたします
  • 4. 4 目次 ✓ はじめに ✓ 要約Mコマンド ✓ Mコマンド2.0 ✓ よく使うコマンド紹介 ✓ さいごに
  • 5. はじめに 5
  • 6. 再利用できないコード…                                ____             /      \           / ─    ─  \          /   (○)  (○)  \           |      (__人__)     |          \     `⌒́     ,/          /     ー-     \ 6 32bitOS… メモリは4GB… 蓄積されないノウハウ… 進捗ありません… ショチク ショチクこと私の辛み はじめに
  • 7. 7 はじめに そんなあなたに Mコマンド
  • 8. 8 Mコマンドとは はじめに ✓ NYSOLプロジェクトの一つ ✓ UNIX(Mac・Linux)環境で動作する大規模なcsvデータを 効率よく処理するためのコマンド群 ✓ オープンソースであるため無料で扱える
  • 9. はやい やすい うまい 処理速度が 学習コストが シェルスクリプトとの連携が 三拍子が揃ったツール
  • 10. 本資料の趣旨 ✓ 大きなデータが苦手なRにかわる前処理の手段を紹介 ✓ Mコマンドの戸口を広げたい ✓ RとMコマンドの合わせ技について 10 はじめに
  • 11. 11 導入(1) はじめに ✓ http://www.nysol.jp/にアクセス ✓ Downloadをクリックし説明に従っていけばOK
  • 12. ✓ 現在Mコマンドには,バージョン1.2とバージョン2.0があります 12 導入(2) はじめに これからMコマンドを始める方は2.0がオススメです ✓ Mコマンドのインストールが完了したならば… ターミナル上にてmcut ̶helpと入力 mcutコマンドの説明が 表記されていればOK
  • 13. 13 導入(3) はじめに ✓ 扱い方は公式マニュアルで全て網羅できる 困ったことがあればマニュアルを まず確認すること
  • 14. 要約Mコマンド 14
  • 15. 15 利点 要約Mコマンド ✓ 公式マニュアル一つで必要な知識は網羅できる ✓ パイプでコマンド同士をつなげて処理ができる ✓ 処理が早い* 過去のTokyoRで速度比較のスライドがあります
  • 16. 16 欠点 要約Mコマンド ✓ Windowsでは使用できない * cygwinでは使用不可,使うのであればVMWare&Linux環境が必要 ✓ 中間生成物に気をつける必要がある ✓ csv限定のためtsvやtxtはcsvに変換しなければならない ✓ 公式マニュアルのサンプルコードの再現が面倒 * 各コマンドを試すためのデータを自分で探す必要がある
  • 17. 17 Mコマンドの基本 要約Mコマンド ✓ 公式マニュアルの2章を参照すると良い ✓ 今回は紹介するコマンドを扱うために必要な要素のみを抜粋 • データ型について • パラメータについて • キーブレイク処理について ✓ 公式マニュアルにはMコマンドにおけるcsvデータの定義などの 説明があるため目を通したほうが良い
  • 18. 扱うコマンド 18 データ型について(1) 要約Mコマンド ✓ データ型の決定手順 1. すべて文字列として扱われている 2. 扱うコマンドによってデータの方が決定される 文字列 数値型文字列型日付型時刻型論理型ベクトル型
  • 19. 19 データ型について(2) 要約Mコマンド ✓ 各データ型の詳細(公式マニュアルより抜粋) * ベクトル型はRで用いるベクトルとは異なる点に注意
  • 20. 20 パラメータ 要約Mコマンド ✓ Mコマンドを実行するために入力するキーワード 必須といえるパラメータ
  • 21. 21 キーブレイク処理(1) 要約Mコマンド ✓ その項目が並び替わっていることを前提として,同一の キー項目値ごとに一定の処理を行う処理方式のこと ✓ キーブレイク処理の種類 • 集計キーブレイク処理 • 結合キーブレイク処理 集計や結合を行う(k=のある)コマンドを実行する前に キーとなる列を並び替える必要がある
  • 22. 対象項目の文字列の変化を取得して集計や結合を実行するため, 並び替えないと正しい結果を得ることができない 22 キーブレイク処理(2) 要約Mコマンド ✓ キーブレイク処理の仕組み A B C AB C B A C * 並び替え
  • 23. 23 キーブレイク処理(3) 要約Mコマンド ✓ コードにてキーブレイク処理について確認 * 順番をランダムに並び替えたirisデータにて確認する 並び替えなしの出力結果並び替えありの出力結果
  • 24. Mコマンド2.0 24
  • 25. 25 Mコマンド2.0 Mコマンド2.0 ✓ 1.xから2.0にかけての変更点 • k=をもつコマンドに児童並び替え機能が追加された * それにともない新たなパラメータも追加された 集計や結合のたびに並び替え処理を行う必要がなくなった より使いやすなったので,これらから使う方は2.0がおすすめ
  • 26. 追加されたパラメータ ✓ コードにてキーブレイク処理について確認 26 Mコマンド2.0 出力結果に順序が影響を与える コマンドには必須とされる 自動並び替えの無効化
  • 27. よく使う コマンドの紹介 27
  • 28. 紹介するコマンド ✓ 出現頻度の高い上位20位のコマンドから10位まで抜粋 * 中原先生のプログ (http://nakapara.jp/practice/about_mcmd) 28 よく使うコマンド紹介 ✓ 使用データ • iris : おなじみのアヤメ • airquality : Rのデータセットの一つ • Data Expo 2009のAirlineのデータ
  • 29. 29 よく使うコマンド紹介 紹介するコマンド(1) ✓ 1位 : msortfコマンド (Rにおけるsort・order) ✓ 2位 : mcutコマンド (Rにおけるdata.frame[ , c(A,B,…)])
  • 30. 30 よく使うコマンド紹介 紹介するコマンド(2) ✓ 3位 : mcalコマンド • 項目同士の計算や文字列の操作など用途は多岐にわたる • mcal c=‘処理の内容'のように表記する irisデータからSpeciesの項目を抜き出し, Species内の重複を削除, mcalコマンドで文字列の長さを新たな項目として追加・出力 *
  • 31. 31 よく使うコマンド紹介 紹介するコマンド(3) ✓ 4位 : mjoinコマンド (Rにおけるmerge) ✓ 5位 : mcutコマンド (Rにおけるtable) ✓ 6位 : mselコマンド (Rにおけるsubset)
  • 32. 32 よく使うコマンド紹介 紹介するコマンド(4) ✓ 7位 : muniqコマンド (Rにおけるunique) * mcalにて出ているため省略 ✓ 8位 : mcatコマンド (Rにおけるrbind) ✓ 9位 : mslideコマンド * mcalにて出ているため省略
  • 33. 33 よく使うコマンド紹介 紹介するコマンド(5) ✓ 10位 : mselstrコマンド (Rにおけるsubset) * -subを追加することで部分一致を用いることができる
  • 34. 紹介するコマンド+α(1) 34 よく使うコマンド紹介 ✓ mavgコマンド • キー項目の要素ごとの平均値を求める集計処理の一つ f=入力項目:出力項目 SpalLengthを入力して出力結果のavgSLに置換する
  • 35. 紹介するコマンド+α(2) 35 よく使うコマンド紹介 ✓ mchkcsvコマンド • csvデータの中にはMコマンドに適していないものもある • Mコマンドで処理できるか確認し修正するコマンド 文字コードをutf8に変換, Mコマンドで処理できるよう修正, mtonullコマンドで文字列NAを欠損値に置換 * -diagを追加で確認
  • 36. さいごに 36
  • 37. Mコマンドを使ってみて ✓ 処理結果の可視化をするためには… 37 さいごに ✓ はやい・やすい・うまい ✓ 似た名称・用途のコマンドがいくつかあって混乱する ✓ AWKやSedとの連携でもっと便利に? ✓ Rとの連携 • ターミナルとRStudioの切り替えが面倒になってきた • system関数をうまく使えば幸せになれる?
  • 38. 38 さいごに Mコマンドで 前処理の辛みを 減らそう!
  • 39. ご清聴ありがとうございました 39