データ穴リストのブログ

文系へっぽこリサーチャーから穴リストへジョブチェンジ中。渋谷の片隅でニヤニヤしております。・・・動いたら、ね。

cronRで自動化にちゃれんじ

アイがなくてもエーねん*1

そもそも僕がRをちゃんと頑張ろうと決心したのは、世の中のエンジニア氏たちはみんな、 ぱそこん君と対話的だけでなく、パシリのようにこき使えていいな、という思いから始まりました。

やりたいこと、やらないといけないことはいっぱいあるのに、 - そろそろ月末だからアレださなきゃ! - …またこの季節か。。またあの人に頭下げて作業お願いしなきゃ。。 - 前回と同じでいいから、あのファイルはコピーぺして使おう

…とか、そういうの、ストレスでした。 考える時間が欲しい。 考えなくてよい手作業は極力やりたくない。 人に作業振ってもやれ今は他の仕事がだの、やれメンドくさいだの、そういう心のケアばかりにはいい加減付き合ってられない!

ということで、タスクスケジューラを使いたかったのです。

  • cronとは 世のエンジニア氏たちには今更ですね。 非エンジニアの僕と同じような皆さんにはコチラが分かったような分からないような気になってちょうどよろしいかと思います。

cronとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

で、crontabがどうとかbin/crontabとかetc/crontabとか色々書いてあるけど結局我々はどこに、どう書いたらパシられてくれるのか、それが知りたいのだよ。

そゆこと、前提のないヒト向けの資料はなかなかないですね。

書き方とかは書いてあるんだけどね。

  • cronRとは

そんな痒いところにもうちょっと届きそうで届かない、けどちょっと届くネット社会ですが、 cronRはじゃあなんなのかというと、

これらの2つのパッケージを使用すると、RプロセスをRから直接スケジュールすることができます。これは、基本的なLinux / Unixジョブスケジューリングユーティリティであるcronに直接コマンドを渡すか、Windowsのタスクスケジューラを使用して行います。パッケージはRのスクリプトは、非対話的に実行することができ、できることその事実を知らないRのユーザー始まるために開発された自動化を。

Scheduling R scripts and processes on Windows and Unix/LinuxChromeさんの翻訳のまま引用

相変わらずちょっとカタコトだけどそこは愛嬌ということで。 ちなみに「2つの」といってるのはまぁ書いてありますがWindowsの場合は別なタスクスケジューラというのがあるのでパッケージは別だよ、というだけですね。 今回はそっちはムシです。 もうWindowsでRstudioほとんどいじってないんだもの。

cronの設定、しなきゃしなきゃ…とは思ってたんだけど、腰が重くてなかなかたどり着かず状態だったので、Rstudio内でこの操作を完結できるのはとてつもなくありがたかったですね。 無論、ちゃんとしたLinuxユーザにはどうでもいいパッケージだというのはよく分かるけど。

あと、このパッケージはRstudioAddinもあって、今回初めてRstudioAddinを使ってみました。

  • 導入

スクショとか入れると親切でしょうけど面倒なのでいれません。

  • RstudioのAddinボタンをポチるのもいいけど、install.package("Addinslist")がステキ
  • Addinlistでアドイン一覧を眺める。
  • cronRをインストー

ちなみにAddinslistの紹介はこちら www.karada-good.net

…さあ!これで使えるのかな?と思ったら「ShinyFilesがないよ」とエラーが出る。 パッケージを入れようにもできない。

なんだこりゃ?と思っていたら、先の開発者さんのgithubを見たら、 どうやらアドインを使うには更に別のパッケージも必要だとか。 ということで下記を実行

install.packages('miniUI')
install.packages('shiny')
install.packages('shinyFiles')

これで準備が出来ました。

結論からいうと、Rスクリプトファイルが消えました。

  • 自動実行するスクリプトを選択して、
  • ジョブの名前を書いて、
  • ジョブのタイミングを設定して、
  • リポジトリだかってとこのパスを指定して

ポチッ!

としたら、同名の空のファイルの出来上がり。

ふぁ!?!?!?!?!?!?!?!?!?!?!?

どうしようどうしよう…

そういえばバックアップとか全然とってない…

git管理もしようと思ってたけど全然理解してない…

指定したスクリプトはかなり前に作って定期的にポチポチ実行していた 自分の中では割と重宝しているものだったので、頭真っ白。

ああ、イチからコード書き直さなきゃなのか…金曜の夜に…もうムリ… と思ったら、Dropboxさんが復元してくれた。…ギリギリセーフ。。。

なにがいけなかったって、 リポジトリのパスを設定する際に、元ファイルと同じ場所に指定なんかしたもんだから*2、 まっさらなファイルを上書き保存してくれたってだけだった。。。

というわけで、今一度上記の引用先*3の動画を見て、 リポジトリ用のディレクトリを作って、ようやく自動化できた。

あの時の衝撃をぼくはわすれない。

バックアップもそうだけど、まずテストスクリプトで試せよってね。

とにもかくにも、これでパソコン君をパシらせることが出来るようになりました。

さぁどんどんパシらせよう。

*1:AI、つまりインテリジェンスがなくたってA、AIだと人工的ってなるけどここではAutomationだったらいいんだよ、というユーモアです。それを説明するというね。

*2:結果のlogファイルが出来る場所くらいに思ってたので…

*3:http://www.bnosac.be/index.php/blog/64-scheduling-r-scripts-and-processes-on-windows-and-unix-linux

cut関数にキャッとしてカッとなって書いた

どうも。

ようやくモバイルPCを買いました。 なのに、まだこのPCで分析環境を整えておらず、現状はただのネットブック

さて、久々の更新ですが、今日は今更な気づきをポエみます。

続きを読む

書きたいことリストだけ書く

仕事と家庭が忙しくって、勉強会にも行けないし全然書けてません。

書けてないのは自由に使えるモバイルPCがないからだ(持ってるのは古いディスプレイ一体型と初代surfacepro…とてもあの重たくて安定しないヤツでコード書きたくない…)。

というのを言い訳に、モバイルPCゲットのために日夜仕事に家庭に励んでおりますが、まだまだ道は長そうです。

なのにもかかわらず、なぜか、この更新されていないブログへのアクセスをそれなりにいただいているようでなんだか本当にごめんなさい。

ググったら出て来ちゃったんですよね。
そうです、このサイトはハズレです。
すみません。

……という気持ちなのでとっとと書きたいのですが、書けません。
iPhoneでコードが書けるとも思えません(今はiPhoneで書いてますが)

なのでなので、とりあえず、「今後書いていきたいこと」をメモします。

だからなんだと言われると、ただの、自分用の備忘録です。

  • 集計にまつわる利用側と提供側のあれこれ&dplyr
  • leafletで遊びたい
  • 時系列解析を初歩の初歩の初歩の入門からやってみる
  • はやくベイジアンになりたい
  • 自分の受信メールから特徴を割り出す
  • 複数ダッシュボードを一気にknitしたい
  • クロスバリデーションについてのギモン
  • list型を使いこなしたい
  • 結果をいかにして伝えるか
  • ぼくのかんがえたさいきょうのR布教法
  • Reproducible Research と使い(使われ)勝手の間
  • EXCELあるいはEXCEList、もしくはエンジニアとの分析コミュニケーション一考察
  • 分析の生産性をあげるためにできること
  • visualstudioでR、powerBIでR
  • 自由に使えるデータ収集
  • 一気に報告書までknitしたい。ホントそうしたい


とりあえずこんなものだろうか。
もう最寄駅に着く。。

とにかく、がんばって書く。
書くために、PC購入の決裁申請をしなきゃ。。。
ウチの大蔵大臣に。


以上

データサイエンティストでもなんでも良いんだけど


下書き書いてるネタは3つほどあるのだが、なかなか更新がままならないので、もういっそ与太話でも書く。
…今まで通りだけど。

ということで、データ分析関係のスキルマップ的なものの概念をイイカンジにしたい。

とりあえず狭い僕の知識から無理やりひねり出してみる。
基本的には妄想です。
適切でなかったら切り捨てるがいいよ。
どうせ根拠は脳内なんで。

一般職種

  • データサマナー(召喚士)

データを精神世界から呼び出す。生み出す。
詠唱を間違えると害なす魔物が出来る。
マーケティングリサーチャーはこの辺の一部。
COMPを使って呼び出したり合体させたり出来る人とはコンゴトモヨロシク。

  • データ戦士

データと格闘する。叩き上げる。
ログを解析したりDBに突っ込んだりする処理をゴリゴリ書くエンジニアなイメージ。

  • データ僧侶

傷ついたデータと人々を癒す。
データクレンジングとリファクタリング
マエショリスト。

  • データハンター

データの鍵を開け(統計解析)、お宝(情報)を獲る。
マイニング屋さん。
盗賊だとよそから奪うイメージなので。。。

  • データマジシャン

データに魔法をかけて不思議なチカラを生み出す。
ビジュアライズ領域。
悪い魔法使いはグラフマジック(禁呪)で世の中を恐怖に染める。

  • データ遊び人

みんなのチカラを借りてばかりだが、ムードメーカーとして機能。
関連部署との連携構築を進める。
実は賢者への近道。

上位職種

データによってカネを生み出す。
もしくはデータ分析環境整備のためにカネを引っ張る。
勘のいいガキは嫌い。

戦士と僧侶の両要素を併せ持つ。
理想的なマエショリストですね。

  • データ賢者

僧侶、ハンター、マジシャンを兼ねそなえる。
正しさと見目麗しさのバランス感覚を持ち、更にそれを凌駕する強い情報を生み出す。
ある意味データサイエンティストとして思いえがかれる理想像。

  • データ勇者

能力全てが中途半端。
だが逆になんでもそこそこ理解があり、
かつそれをもってパーティを引っ張ることができる。
「デイン」系呪文が使える。
あるいは自在にペルソナチェンジが出来る。

ダークサイド

  • データ暗黒騎士

自らの命を削って(長時間労働で)ゴリゴリする戦士。
人のHPを吸い取る吸血系も。

  • データネクロマンサー

死んだデータを未だに生かそうとする。
過去の知見を学ばない。
たまにホントに転生させる。

  • データ吟遊詩人

謳う。
それだけの人。


とりあえずこんなところだろうか。
根拠は何もないが、ビジネス的には割とそれっぽい気もしなくもない。

酔った勢いで一気に書いたけど、炎上すれば幸い。

lubridateで年齢計算(Excelのアレ)

lubridateーーそれは愛しい、時間概念とのアバンチュール

今宵のステキな刻(とき)を彩る、珠玉のLovely date.....


…と、外で書いててかなり恥ずかしい。

■今回はlubridateパッケージについてです。

lubridate、とても便利!という声は聞きつつも、あんまり他のブログに書かれてないんだもの。

他の記事といえば以下のあたりを参考にさせていただきました。
estrellita.hatenablog.com
www.karada-good.net

この辺りのブログはもうアレですね。
私にとっての貴重な情報源です。

もうホント、毎日のように仕事もしないで参考にさせていただいてます!

■そうなんだけど

だけど、そこから先の、日付データの、次の処理がない。

会員情報とか扱ってるようなお仕事をしてる方だったら、生年月日とか持ってますよね?

年齢とか計算したくないですか……!?

ましてや、学生等々、その1学年だったり、世代の観点が重要な分析テーマとか、
需要ありますよね!?!?


僕は欲しかったんです。
そういう処理方法のヒント。
無かったから試行錯誤しながら泣いてたんです。

全国のRおじさんの皆様、そういうことなんです!

■R以外でやればいいじゃん

…そりゃね、他の言語でなさる方はそうでしょうね。

あるいは我らが神、excel様でも便利な関数ありますよね。

そう、datedif()


えぇ、よくお世話になりました。


なぜあんな便利な関数が隠しコマンド的な扱いになってるのか、未だにナゾです。


でもね

数百万レコードを一気に計算したいっつったらExcel無理じゃんね

感覚的には、Excelは5万行超えたらもう無理。
計算とかしてフリーズしたりイライラしたくない。

他言語?できるだけ1つのツール内で完結したいですぅ

エンジニア氏に任せればいい?
時間がかかるならその部分未処理でいいからデータ早よクレ。


という訳でやっちまいましょう。

…と思ったんですが、ビギナーの僕にはやや荷が重かった。

■そこで天使のおわすサンクチュアリ、r-wakalangへ

いつも悩める子羊である僕の低レベルな質問にもすんなり答えてくださる先人たち、本当にありがとうございます!

みんなも困ったらココへ!!
qiita.com


で、何か時間間隔を計算できないかなーと思っていたら、日本R界の天使*1が広大なRの海の中から探し出してくださいました、

time_length()

この関数は、2つの日付データの間隔を割り出して返してくれるもので、unitに単位を指定すればその単位の間隔を出力してくれるすぐれもの!

…あれ?これどっかで見たことあるぞ?

そう、まんまこれ、Excel様のdatedifなんですね。

■細かな挙動は少々異なる

とはいえまぁ、単なる表のExcel野郎 Excel様と違って、
Rだし、ちゃんとベクトル単位で計算可能です。

x <- "2000-04-02"
y <- "2016-04-01"

x2 <- c("2000-03-31","2000-04-01","2000-04-02","2000-04-05","2000-04-06","NA","2016-04-01","2016-04-02","1916-04-01","1916-04-02")

dif <- as.Date(y) - as.Date(x) 

dif2 <- as.Date(y) - as.Date(x2) 

time_length(dif,"year") # unitで指定した年単位の値が返ってくる

time_length(dif2,"year") # ベクトルの長さが違っても出来る

■では、年齢計算してみます

先に以下のサイトを参考にしてたのもあって、関数に初挑戦してみました。
blog.goo.ne.jp

calc_age <- function(birthday, obsdate){
  dif <- as.Date(obsdate) - as.Date(birthday)
  trunc(lubridate::time_length(dif,"year"))
}

# あれ…?

calc_age(x, y)

calc_age(x2, y)


よしよし、出来た。と思いきや、どうも日付が微妙にズレてる。。

原因は、データ型の問題でした。

元々あるdifftime型だとうるう年を考慮してくれないようなので、lubridateにあるinterval型にします。

# こっちだとNG
class(dif <- as.Date(y) - as.Date(x))

# interval型にする
class(dif <- interval(as.Date(y)), as.Date(x)))


calc_age <- function(birthday, obsdate){
  dif <- interval(as.Date(birthday), as.Date(obsdate))
  trunc(lubridate::time_length(dif,"year"))
}

できたできた。
仕事柄、「学年」でまとめたい時には4/1時年齢とかで計算したいから、観測日年齢のズレは困っちゃうので、interval型大変便利です*2

ついでに上限・下限も決めちゃっておかしな元データは計算しないことにする。

calc_age_limits <- function(birthday, obsdate, lower = 0, upper = 100){
     dif <- as.Date(obsdate) - as.Date(birthday)
     check <- trunc(lubridate::time_length(dif,"year"))
     check1 <- replace(check,which(check>=upper),values = NA)
     replace(check1,which(check1<lower),values = NA)
}

calc_age_limits(x2, y) #デフォルトでは0歳未満、100歳以上をエラーとする、ということにしてます

■欠損値が2回続くとダメ?

と、ココまで来て満足していたら、いざ実データでやってみるとエラーが出て動かない。。

なんでか全然分からずに、色々テストしてみたら、どうもNAが2個以上ベクトル内にあるとダメっぽい。

x3 <- c("2000-03-31","2000-04-01","2000-04-02","2000-04-05","2000-04-06","NA","2016-04-01","2016-04-02","1916-04-01","1916-04-02", "NA")

calc_age_limits(x3, y) # エラーになる


なんぞこれ…バグじゃないんすか。。。
なんか解法があるんすか。。。

タスケテ!R-wakalang!


ということでまた相談したら、またも天使が確認してくださるしバグ報告してくださるしとりあえずの対処法を示してくださるという。。。
まさにAngel of Angels!*3

■修正すると*4

こんな感じです

calc_age_limits2 <- function(birthday, obsdate, lower = 0, upper = 100){
    diff <- interval(as.Date(birthday), as.Date(obsdate))
    na_idx <- is.na(diff)
    result <- vector("numeric", length(na_idx))
    result[na_idx] <- NA
    result[!na_idx] <- lubridate::time_length(diff[!na_idx],"year")
    result2 <- replace(result,which(result>=upper),values = NA)
    result2 <- replace(result2,which(result2<lower),values = NA)
  trunc(result2)
}

# result2って…ダメな書き方ですよね。。。すみません。。

calc_age_limits2(x3, y)


ということで、NAがあっても大丈夫な関数になりました。*5

別にtime_length()のままでも使用には支障はないんだけど、整数で結果が出ないしinterval型にしないと正しく返らないので、
「コレ叩いたらすぐできるよ」ってドヤ顔する為に関数の方がいいかなということで、関数をご紹介しておきます。

これを応用すると(応用でもないけど)、
まんまExcelのdatedif()がRでできます。

datedif <- function(startdate, enddate, Units = "year", lower = NA, upper = NA){
    diff <- interval(as.Date(startdate), as.Date(enddate))
    na_idx <- is.na(diff)
    result <- vector("numeric", length(na_idx))
    result[na_idx] <- NA
    result[!na_idx] <- lubridate::time_length(diff[!na_idx], unit = Units)
    result2 <- replace(result,which(result>=upper),values = NA)
    result2 <- replace(result2,which(result2<lower),values = NA)
  trunc(result2)
}


# テスト (1行目はcalc_age_limitsと同じになります)
datedif(startdate = x2, enddate = y, Units = "year", lower = 0, upper = 100)
datedif(startdate = x2, enddate = y, Units = "year")
datedif(startdate = x2, enddate = y, Units = "month")
datedif(startdate = x2, enddate = y, Units = "day")
datedif(startdate = x2, enddate = y, Units = "hour")
datedif(startdate = x2, enddate = y, Units = "minute")
datedif(startdate = x2, enddate = y, Units = "second")


こちらはUnitsを変えられるようにしてあるので*6、upperとlowerはそれぞれデフォルトはNAにしときました。

※小数点以下を知りたいときはtrunc()を消してください。まぁそうすると関数の意味殆ど無い気もするけど。

ということで、大量データでもこうした対処で簡単に時間感覚が計算出来るようになりました。



これで

  • 対エンジニア氏:え?計算に時間がかかる?したら生データでいいから早めにデータください(ドヤァ

というコトが可能になるわけです。

ライフハックですねぇ。



今回は以上です*7

*1:@yutannihilation氏にはいつも大変お世話になっております…!というか今回の内容、ほとんどが@yutannihilation氏に教えていただいたものを記事化しただけです。。。

*2: ズレて良いってことはまぁ大概ないですね

*3:聖yutani氏を讃えよ!

*4:実は、天使が調べてくださった情報では、lubridateのバージョンを1.6.0にあげたら解決するということがgithubにも書いてあったのですが、バージョンあげてもなぜか出来なかったので、以降は天使が授けてくれた対処法を元にしています

*5:ちなみにNAの連続でエラーになるのはこのissueらしいですが、ちょっとコレわからない…github.com

*6:って元々time_lengthの仕様ですけどね

*7:とにかく言いたいのは、R-wakalangありがとうということと、中でもいつも回答くださるyutani氏に感謝、ということです

記事が書けないです!

えー、だいぶ更新が止まってました。。

更新が止まってる間にそこそこPVが伸びてるというナゾの現象に驚愕しつつ、
長らく滞っていたことをお詫び致します。

……誰にだろう?

自分かな。

なぜ滞っていたのか

ひとえに私の怠惰と言ってもいいですし、

息子の送り迎えで仕事もままならないとかでもいいですし、

あるいは来たる我が家の2人目の子の事を考えると何も手につかない、とかでも、解釈は委ねますが(誰にだ)、

一番の原因はコレかなというのがあります。2つほど(ぇ

1. 仕事でしかRを使ってない

この数ヶ月、それなりにRは触ってました。

もちろん分析もしてました。

でもいざネタを書こうかと思うと、書けない。

なぜか?

だって、業務データしか扱ってないし、それを一般化して話するの、メンドイんだもの。

いやまぁメンドイのは半分以上本当ですが、
実際仕事でやってる事をどこまで一般化して書くかって、結構難しいんですね。

各要素要素、例えばdplyrの挙動がどうとかは、それそのものがオープンな話なので書けるとは思いますが、
たくさんの僕より遥かに詳しいRおじさんの先達たちと同じ事をしてもこのブログに価値はない。

そんなカルピスの希釈間違えちゃってちょっと放置したら氷が溶けてますます味しないみたいな記事は要らんのです。

そんなことやってる暇があったら息子が寝る前に帰って息子と遊ぶか、
風呂入れて寝かしつけて奥さんの心の安寧を図る方が遥かに重要なんです。

というワケで、このブログのコンセプト、
「素人がしれっと色々手を出してみたら結構よく分かんないこと多くてまぢしんどい、
みたいなことを紹介する」
という方針に添う話題を、

じっくり熟成させておいたのです!

という感じでご理解ください。

2. ブログ執筆に適したデバイスが無い


もう1つはコレです。
そうです。

道具のせいです。

だって、家にある5年以上経ったオンキョーのデスクトップはそもそも事務作業に向いてないディスプレイ一体型で、ワンワンうるさいのも手伝って、もうプリントゴッコとしてしか機能してないし、

住宅エコポイントで調子に乗って買った初代surfaceはとにかくオフィス系の操作がスゴいストレスフル

かと言って、会社のレッツノートで書くわけにもいかないし。。。

ということで、今は仕方なくiPhone6s plusで書いてます。

大きいけどやっぱり打ちづらいね!長文。


あとね、家にいるときには基本的にまともにPCなんか触れないし、Rでスクリプト書くとかホント無理。

なのにもかかわらず、僕が愛用していたイーモバイルプリペイド通信端末は6月でサービス終了しちゃうし。

ということで、外での通信環境と、持ち歩きに優れてかつキータイプが快適なデバイスを求めています。

……冬のボーナスで、、、買えるかな。。。




以上の理由により、更新停滞についての説明を自己完結いたしました。



ただようやく、書きたいネタがほんのすこーしだけ出てきたので、
そろそろ書きます。


ステキなデバイスを手に入れたら!!!

Tokyo.Rに行ってきた

 
連投する!
 
コードも載せないが、連投する!
 
ブログは更新してこそのブログ!
 
コードも載せない技術(笑)ブログだが、更新することに注力した結果そうなった!
 
ということで書く!
 
 

今日のお題は

…………というネタも、ヒトから聞いてきたよって話なんだけども。
 
この前のTokyo.R#53に、初心者がのこのこ参加してみたよって話です。


あ、ブログタイトルと見た目を変えてみました。
関係ないけど今夜は妻側の両親と回らないお寿司の予定です。

 

まとめてみた。

社内のredmineでひとり寂しく「共有」した表を転載する。
ヘーシャのヘーブにはR使いがいない。
つまりこんなワタシが最もRについて詳しいのである。
ただの不戦勝。みんなでRやって年収あげようぜ。。。?
 
というどーしようもない状況を脱するべく、
ちゃんとしたエンジニアさん達にもRを使ってもらいたい一心で、地道な布教活動を続けている。
 
その成果を紹介。
スピーカー タイトル 備考
初心者セッション
@doradora09 初心者セッション 1

(資料見つからなかったので前回の?中身はほぼ同じかな)

 R言語入門ver2.15

@aad34210 初心者セッション2(欠席により中止)  
@kotatyamtema 初心者セッション3 内容:ゆるふわ文字型データの 取り扱い入門 lEncodeと便利パッケージと正規表現
@kashitan Rによるウイスキー分析 本人ブログ(Tokyo.R #53まとめ)
応用セッション
自己紹介タイム
@y__mattu 実務でもきっと役立つ統計的因果推論(スライド公開なし) ※別の方だけど過去の回で統計的因果推論の話をした資料
Rで学ぶ 傾向スコア解析入門 - 無作為割り当てが出来ない時の因果効果推定 -
@u_ribo ハドリーさん、進捗どうですか(Hadley Ecosystem 2016 by Uryu Shinya)  すばらしい。
Toyoda,H 『実験計画 or クロス表のベイズ分析』 5/20?(6月?)の新刊の紹介&stanを動かす関数公開の案内もあった。
はじめての 統計データ分析 ―ベイズ的〈ポストp値時代〉の統計学―
ライトニングトーク
@siero5335 Mxnetで回帰 #TokyoR 53th 僕の今のレベルでは唱えられそうも無い。。とりあえず城の周り回ってからまた来る!
@kato_kohaku それを捨てるなんてとんでもない “Imputation of Missing Values using Random Forest”  一通り出来るようになったら次はココ頑張る。。
@yutannihilation dplyrとは何だったのか ここを理解出来ると書くスピードがあがりそう。
@kazutan Tokyo.R #53 LT「R Markdownのちょいネタ集」  ステキすぎる。
@Korenari_D Rでやってみた金融テキストマイニング  自分の仕事に応用したい。
@kos59125 R で LINEBOT を作ろう ご本人ブログ
http://blog.recyclebin.jp/archives/4573
@kumisky 解約リストと分析と現場 泣ける面白さだった。資料みたいけど、当日のスピーチ込みだからこそな気もする。
@simizu706 また春に会いましょう ベイズ推定で不合格者を決めたい かの有名なHADの先生。陰ながらいつもお世話になっております。
 
 
とにもかくにも、雲の上のようなRエンジニア、R使いの統計家の方々ばかりで、正直内容の7割は理解してない自信がある
(あと会場の9割の方とはお話すら出来てないコミュ障である)。
 
そんな中でも、僕が最も感銘を受けたのは、
やっぱり豊田秀樹先生の報告だ。
無作為抽出はイデアです
この一言にはシビれた。
 
統計的検定、検出力などを長年教えてこられた先生からのこの一言にはとても深い含蓄を感じる。
 
今度の入門書はぜひとも購入して学びなおさなければ。
 ※アフィとかは無い。なんならアフィのあるサイトで買ってあげるとブロガーさんが喜ぶんじゃないだろうか。
 

で、穴リスト的にはどうなの

 勉強会に行って、何も得られることがなかったのなら、それは参加しないのも同義だ。
時間がかかっても、得るのもがあればいい。

ということで、特に楽しそう&自分の仕事に役に立ちそう(&ちょっと頑張れば自分にも出来そう)なお話を参考に、自分でも以下の話をやってみました。

このお話↓

報告はとても面白く、データ的にも興味あるし、レーダーチャートも多次元尺度構成法も仕事で使えるので、これは是非ともということと、
報告ではクラスタリングしたところで終わっていて、結果がどうなってるか、その先がすごく気になったというのもあって、再現してみました。

と言っても、@kashitanさんと@u_riboさんの書いたものを写経してからちょっと足した(そして繋げた)だけですが。

………っていう詳細を書いていく。
あー、でもコードハイライトの出来ない見たままモードで書いてしまったので、
つづきはWEBで!
・・・次のエントリで。書きます。。


あとは、rmarkdownのお話とか、統計的因果推論のあたりが、自分の仕事周りだと活用出来るようになりたいなと。

次の目標はとりあえずいよいよダッシュボードかな。