LT岐阜#3をやったよ!!

誰も参加表明しないから小さい教室を取ったんだけど予想以上に人が来て驚いたでござるの回.
ついでに直前に「忙しいから発表無理ですわ」と言われたので僕が2つくらい用意して言ったら,別の人が発表してくれたので驚いたでござるの回.

  • 僕の発表
    • 牛さんの反芻をこういう風に解析しているよ!!
    • #2で指摘されたデータをRで解析するとこの関数が便利だよ!!
  • 工学部の学生さんの発表
    • 牛さんの咀嚼をパターンマッチングを使って識別するよ!!

僕が紹介したRの解析の奴

  • tapply関数

たとえば農学部的なデータとして,草地のパラメータを取ってくる場合.
草高を取ってくると,だいたい次みたいにデータがとれる.

草種 草高(mm) 測定地区
ライグラス 200 1
バヒアグラス 240 1
ライグラス 300 1
ライグラス 220 1
オーチャードグラス 180 2
ライグラス 120 2

...


広い草地の場合,草地を細かく区切った測定地区ごとに,適当な本数をサンプリングして草高を測る.
あと測定地区内の草種が単一ではないので,高さを測定した草種もデータとして書き込む.


こういうデータで

  1. 普通に全体の平均を求めたい
  2. 測定地区ごとの平均を求めたい
  3. 草種ごとの平均を求めたい
  • 全体の平均

mean関数でできますね*1

  • 測定地区ごとの平均を求めたい
  • 草種ごとの平均を求めたい

こういう時にtapply関数.

さっきの表がmatrixデータで,soutihogeに入っているとして

測定地区ごとの平均
tapply(soutihoge[,2],soutihoge[,3],mean)

草種ごとの平均
tapply(soutihoge[,2],soutihoge[,1],mean)

  • 受講者からの声(別名質疑応答)
    • 今までは測定地区ごとにcsvファイル作ってたけどこれならread.csvが一回で済みますね!!
    • でも,やっぱ測定値ごとに分けたくなったらどうするれないいんでしょう?
    • たとえば,測定値の,各草種の平均が知りたかったらどうすればいいんでしょうか?
  • 発表者からの返答(別名質疑応答)
    • 層別に分割するというと,split関数ってのがありますね.
    • splitで分割してからtapplyを僕は使ってるけど,ほかにもっといい方法があるかもしれない.
  • あと同じような動きをするものとして,by関数ってのがあります.これも便利.


まぁだいたいこんな感じのやりとりだったかな.
実際にR動かして紹介したんだけど,思った以上に「これは使えるぜぇぐふふ」的な反応が返ってきてうれしかった.
Lightning Talkだと,こういうデータ処理の話をやさしくやっていくと,R人口を増やせる気がした*2

工学部の学生さんの発表

まぁ僕のデータ解析を共同でやっていただいてる研究室の学生さんなんですが.
名前とか出していいかわからないので.

  • MATLABでパターンマッチング
    • 音のスペクトルとかは関数がある
    • 実際のパターンマッチングはほとんどプログラムみたいなもの
  • テンプレートの作成方法
  • 実際にデータを解析したらこんな感じの結果になりましたよ

みたいなのを簡単に紹介してくれた.
詳しいデータを出すのはまだアレなので割愛*3

反省会

  • だいぶみんな慣れてきてゼミっぽい空気が若干緩和された(気がしなくもない)
  • Rを使ってこんなデータ解析ができるよ!!って話はみんなの反応が良かった

なんというか,もっとlightning talkを普及させるヒントになった気がする.
まぁまだいろいろ試行錯誤ですかね.
とりあえず継続していくことを忘れないようにしないと.

*1:実際にはちょっと違う.測定地区ごとに平均を出し,その平均値をさらに平均してその草地の平均草高と表現する

*2:実際僕も,データ処理に困ってググって,かぼちゃとラケットが登場するブログの紹介記事を読んでRを使うようになった経緯があるし.

*3:一応僕が春の学会で軽く発表したデータではある