Rの基礎とプログラミング技法 - U.リゲス
最初、Rを使いはじめたときには「変態的な文法だなぁ... もう、統計用の関数を呼ぶときと、ちょっとしたグラフを描画するときにしか使わない」とか思っていたのですが(ごめん)、実はいま、ほぼ毎日Rづくし。慣れてみるとそれなりにリーズナブルだと思える文法規則や、データをすべてベクトルや行列の形でメモリに乗せることを前提としたメソッド、インデックス指定の柔軟性等、それなりにいい点がおぼろげながら見えてきました。結果、僕の日常の計算はRake, jksrc, Rで賄っている感じになっています。そんな中、ngsm氏がもっている本書を拝見させていただく機会があり、「やっぱりぼちぼち読まなきゃなぁ」と思った次第。いままでは、Rjpwikiとhelpだけで誤摩化してきたのだけれど、いい加減、俯瞰してみる必要があるかと。
で、ざっと目をとおしてみたところ、そんなに目新しいところはなかった。%in% とか matchの便利さに関する解説が薄い...というのは、今の僕にバイアスしすぎですね。いや%in%とmatch、便利ですよほんと。それはともかく、S3/S4についてもっと解説しているのかと想像していたのですけれど、さらっとしか触れていないのですね。詳細は他をあたるように、というnavigation。頭を整理するという意味ではタイミング的にちょうどよかったかな。見落としていた面白い関数/パッケージ
- with : rails/active_recordsの with_scope http://d.hatena.ne.jp/kwg/20060904/p2 みたいなモノ。
with(purchase , rep(product, amount)) (purchaseというデータフレームの中に、productとamountというカラムがあるトキ)
- subset: SQLのselect文みたく、data frameを抽出できる
subset(purchase, shop %in% c("meat.products","daily.products"))
- latticeパッケージ: カテゴリ毎のplotを作るのに便利 ("|" がポイント)
data(iris) library("lattice") xyplot(Petal.Length ~ Sepal.Length | Species, data = iris) SW <- equal.count(iris$Sepal.Width, number = 2, overlap = 0.33) xyplot(Petal.Length ~ Sepal.Length | Species * SW, data = iris)
あとは、表7.5と6がまとまっていて、チートシートにもってこい。
binom.test - 二項検定 chiq.test - カイ2乗検定 fisher.test - フィッシャーの正確確率検定 friedman.test - フリードマンの順位和検定 kruskal.test - クラスカル・ウォリスの検定 ks.test - コルモゴロフ・スミルノフの検定 mcnemar.test - マクネー検定 t.test - t検定 var.test - F検定 wilcox.test - ウィルコクソンの順位和検定
knn - k 最近近傍識別法 lda - 線形判別分析 naiveBayes - ナイーブベイズ NaiveBayes - ナイーブベイズの拡張 nnet - 単一隠れ層のニューラルネットワーク qda - 二次判別分析 rda - 正則化判別分析 rpart - 再起的分割 svm - libsvmなsvm svmlight - svmligthなsvm
errorest predict step class ucpm
番外: exactRankTest