今日は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文が慣れてるperlC#の書き方と微妙に違うので、とまどったけどな。

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)

簡単、簡単。これで、オレの卒業研究も進みそう(ずいぶん、脱線してる気がするけど)。