保存されたSVG形式のファイルはウェブブラウザで開いたり、Inkscape(フリーウェア)やIllustrator(商用)などのアプリケーションを使って編集し、線の太さやフォントを変更できる。
> pet<-read.table("petunia.csv",sep=",",header=T)
このデータは欠測値として-1を使っているが、普通に読み込むと数値の-1として扱われる。例えば、B703, B819は結実しなかったので、果実のデータがない。
&gt; pet[37,] pl sp X1 X3 X4 X5 X6 X7 X8 X9 X10 37 B703 integrifolia 4.24 2.66 2.38 18.74 7.28 0.3885191 16.4 1.32 1.4 X11 X12 X14 X16 X17 X19 X21 X24 X25 X29 X30 X31 0.9455087 13.92 2.12 2.52 1.54 2.910401 25.52 9.84 35.58 22.5 -1 -1 X33 X34 -1 86.7
そこで、これらをNAで置き換える。
> pet[37,22:24]<-NA > pet[47,22:24]<-NA
もしくは、最初にデータを読むときに-1を欠測値として扱うように指定する。
> pet<-read.table("petunia.csv",sep=",",header=T,na.strings="-1")
欠測値を含むデータは正しい類似関係を示さない可能性があるので、除外する。もちろん、除外しないものと比較しても良い。
> pet2<-subset(pet,complete.cases(pet)) # 欠測値を含む2ケースを除外 > pet_dist<-dist(pet2[,3:24]) # pl, sp, X34を除いたデータで距離行列を計算、[,3:25]とすればpl, sp以外の全データを使う > cl_res<-hclust(pet_dist,method="average") > plot(cl_res,labels=pet2$pl,hang=-1) # 予定した形のグラフになるか確認 # 図をファイルに保存 > library(RSVGTipsDevice) > devSVGTips(file="cluster.svg",toolTipMode=0) > plot(cl_res,labels=pet2$pl,hang=-1) > dev.off()