各コミッタの各ファイルに対するコミット数からコミッタを分類できないだろうか。
主成分分析というやつを使うとわかるのかもしれない。
tb git-log ruby -o ruby-git.csv tb unnest files ruby-git.csv -o ruby-git-v.csv tb group author-name,filename -a 'count' ruby-git-v.csv -o r1.csv tb unmelt --variable-field=filename --value-field=count --missing-value=0 r1.csv -o ruby-committer-vector.csv
ruby-committer-tendency.R:
library(ggplot2) library(reshape) d <- read.csv("2012-04/ruby-committer-vector.csv") rownames(d) <- d$author.name d <- d[,-1] pc <- prcomp(d, scale=TRUE) data <- data.frame(obsnames=row.names(pc$x), pc$x) p <- ggplot(data, aes_string(x="PC1", y="PC2")) p <- p + geom_text(alpha=.4, size=3, aes(label=obsnames)) print(p)
ふむ。nobu と nagai が突出しているのは分かった。(nobu は matz 方向に、nagai は違う方向に)
個人として突出していることはあっても、複数のグループに分かれているといったことはないようだ。
PC1 と PC2 がどういうベクトルかを見てみる。(全体は多すぎるので影響が大きい正負最大10個だけ)
PC1: ext.openssl.lib.openssl.cipher.rb -7.663215e-04 ext.openssl.lib.net.https.rb -7.495784e-04 test.scanf.data.txt -7.042950e-04 test.uri.test_parser.rb -6.723496e-04 lib.rdoc.generators.template.html.css2.rb -6.715835e-04 ext.ripper.MANIFEST -6.637742e-04 ext.racc.cparse.MANIFEST -6.491679e-04 ext.strscan.MANIFEST -6.478990e-04 yarvtest.test_massign.rb -6.181775e-04 yarvtest.test_opts.rb -6.181775e-04 ... ext.tk.sample.demos.jp.puzzle.rb 2.876716e-02 ext.tk.sample.demos.jp.search.rb 2.876716e-02 ext.tk.sample.demos.jp.spin.rb 2.876716e-02 ext.tk.sample.demos.jp.style.rb 2.876716e-02 ext.tk.sample.demos.jp.text.rb 2.876716e-02 ext.tk.sample.demos.jp.twind.rb 2.876716e-02 ext.tk.sample.demos.jp.unicodeout.rb 2.876716e-02 ext.tk.README.1st 2.877772e-02 ext.tk.sample.demos.en.entry3.rb 2.900566e-02 ext.tk.tkutil.tkutil.c 3.052468e-02 PC2: lib.rake.rb -3.026955e-02 ext.iconv.iconv.c -3.021844e-02 ext.stringio.stringio.c -3.016935e-02 lib.optparse.rb -3.011333e-02 load.c -3.006831e-02 Makefile.in -2.991653e-02 vm_method.c -2.988716e-02 runruby.rb -2.973986e-02 misc.ruby.style.el -2.971750e-02 ext.io.console.console.c -2.966230e-02 ... ext.tk.lib.tk.rb 1.409071e-02 ext.tk.lib.tk.spinbox.rb 1.415379e-02 ext.tk.sample.demos.jp.dialog2.rb 1.470125e-02 ext.tk.sample.demos.jp.hscale.rb 1.470125e-02 ext.tk.sample.demos.jp.vscale.rb 1.470125e-02 ext.tk.lib.tk.scrollbox.rb 1.548342e-02 ext.tk.sample.demos.jp.widget 1.549715e-02 ext.tk.lib.tk.canvas.rb 1.577232e-02 ext.tk.lib.tk.text.rb 1.585240e-02 ext.tk.lib.tk.entry.rb 1.652689e-02
tk をいじればいじるほど右上方向にいくようだ。
chkbuild 他を github に移した。
[latest]