今日はRに挑戦
昨日の続きである。とりあえず、Rで1次元のベクトルを受け取って、2次元の配列にするには、以下のように書いてみた。
input<-c(-1,0,1,5,6,7) s<-matrix(NA,length(input),length(input)) for(i in 1:length(input)){ for(j in 1:length(input)){ k <- -1*(input[j]-input[i])^2 s[i,j]<-k } } m<-median(s[,1]) for(i in 1:length(input)){ s[i,i]<-m }
いざ書いてみたら、意外と簡単だった。Objective-CでNSMutableArrayを使うよりも簡単だな(というか、この程度の構文をCの配列を使わないでNSMutableArrayを使うことが多分間違ってるんだろう)。for文が慣れてるperlやC#の書き方と微妙に違うので、とまどったけどな。
RをEmacsから使う
RをEmacsから使うためにESSをインストールしてみることにする。以前、MeadowにESSをインストールしようとして、DOSのpathとCygwinのpathのことや文字コードやなんかで悩んだ挙げ句やめた記憶があるけど、MacOS X上で使う分には問題ないだろう。
インストールのために、まずは、Makeconfを修正。
DESTDIR=/Applications/Emacs.app/Contents/Resources EMACS= /Applications/Emacs.app/Contents/MacOS/Emacs LISPDIR=$(PREFIX)/site-lisp/ess INFODIR=$(PREFIX)/info ETCDIR =$(PREFIX)/etc/ess
直したのは、上記の部分。あとは、make && make installして、~/.emacs.el に、ドキュメントどおりに追加すれば、それで終了。
(require 'ess-site)
簡単、簡単。これで、オレの卒業研究も進みそう(ずいぶん、脱線してる気がするけど)。