ぎょーむ日誌 2007-06-03
2007 年 06 月 03 日 (日)
-
0800 起床.
コーヒー.
朝飯.
洗濯.
怠業 & またちょっと部屋の片づけしてから,
1020 自宅発.
今日もいい天気
(札幌の「五月」晴れ?).
1035 研究室着.
うだうだと web site まわりを少々ひねくる.
[イタヤカエデ巨木]
地環研前にある老齢 (?) の
Acer mono
(手前はよくわからぬマツ).
駐車場の車との比較で大きさがわかると思います
(樹高 15 m ぐらい?).
今年も元気に展葉しているよーです.
R プログラミングに関して気づいたことなんですが,工学系・数学・物理学系
の分野ならいざしらず,おそらく他の多くの学問分野の R ユーザーたちにとっ
て,R が「第一プログラミング言語」 (最初に実用的に使うプログラミング言
語で,しかもこれ以外はほとんど使わない場合が多い) になるという状況が現
出しつつあるような気がします.
私が教えている範囲では,データ構造と制御構造を教えると,(とくに院生ぐら
いの若い人たちなら) わりとすんなりプログラミングできるようになるように
なるようです.ただし,プログラミングにおける関数という概念はなかなか使
いづらいようです (概念は理解できるが自分で独自の関数を定義できない).複
雑な処理が必要になると copy & paste で似たような (しかし微妙に異なる)
コードを列挙していくことが多いですね.
いっぽうで,他の言語である程度プログラミング経験のある人は R ぐらい簡
単に自習できるはずだと取りくんでは見たものの,(やや独特なところのある)
R データ構造の操作で行き詰まったりしてるようですね.
inline
なる package があり,
これは何と
R
コード中に C/C++ コードを書いとけば,
それをコンパイル
(R CMD SHLIB
)
して R 関数オブジェクトと関連づける,
という作業を自動的にやってくれる
……
という便利なのか邪悪なのかよくわからぬもの.
Unix 系の OS の場合,
たいてい
R CMD SHLIB
で問題なく外部モジュール作ってくれると思うんだけど,
たいはんのゐんどーづ R ユーザーの環境ではダメでしょうなぁ
……
また別の R ハナシで
間瀬さん
のメイルのご指摘で気づいたんだけど
……
R の配列 (というかたいていの場合は vector)
の添字 (index)
わざはだいたい「こうだろう」というふうに動くんだけど,
添字の範囲をはみだしたりしたときにちょっと変わった動作をする.
> x <- 101:110 # 長さ 10 の integer vector
> x[1] # 1 個めの要素
[1] 101
> x[1:3] # 1-3 個めの要素
[1] 101 102 103
> x[-1] # 1 個めの要素をのぞく
[1] 102 103 104 105 106 107 108 109 110
> x[-(1:3)] # 1-3 個めの要素をのぞく
[1] 104 105 106 107 108 109 110
> x[0] # じゃあ 0 個めの要素は?
integer(0)
> x[11] # 11 個めの要素は?
[1] NA
> x <- 99 # こんどは長さ 1 の vector 作る
> x[1]
[1] 99
> x[-1] # x は integer かどうかわからないので
numeric(0)
> x[0] # これも同じ挙動
numeric(0)
> x[2] # この挙動は長さ > 1 vector と同じ
NA
まあ x[0]
としたときにともかく「長さゼロの vector (など)」
返してくるのでそれで問題ないわけだが.
また別の R のハナシ.
私自身は特に必要性を感じてないんだけど
……
R で作った図を「Illustrator みたいなそふと」
で修正・修飾してみたい,
という需要はあるのかもしれない.
で,
いろいろな方法あるんだけど,
例によってどんな OS でも
(つまり Linux でも MacOS X でもゐんどーづでも)
使える free software で解決する手段としては
inkscape
(Wikipedia 解説)
を使うと良いのかもしれない.
ただし R 側出力でも多少の工夫が必要であり,
RjpWiki 内の
Rのベクターデータを弄る人へ
にあるように
library(RSvgDevice)
の devSVG()
使って
devSVG(file = "output.svg")
plot(...)
dev.off()
というふうに SVG 出力して
(SVG は XML な vector data file),
あとはこの出力ファイル output.svg
を inkscape
(下の図は Vine Linux 版)
で open してやれば,
図をひねくりまわしたり文字あれこれを変えたりできる.
-
日曜日なのに,
なンか院生密度が高いなあ
(これは研究室にいながら推定可能)
……
と,
こわがっていて昼飯時間がおくれたわけじゃないけど昼飯.
-
地衣類繁殖の階層ベイズモデル,
MCMC 収束に関してごく簡単に追記しておく.
志水さんはおいそがしいようなので,
この論文化作業はひとまず suspend されるのかしらん?
-
トドマツ原稿あれこれにとりくむ.
まずは図表の修正.
これはけっこう手間だ.
そして本文なんだが
……
うーむ.
-
ということで質問メイルなど書いてから撤退.
1850 研究室発.
1905 帰宅.
晩飯の準備.
晩飯.
-
[今日の運動]
-
[今日の食卓]
- 朝 (0830):
米麦 0.7 合.
麻婆春雨.
- 昼 (1440):
研究室お茶部屋.
米麦 0.6 合.
レトルトパウチドカレー.
- 晩 (2100):
米麦 0.8 合.
ホッケ.
キャベツ・ニンジン・キュウリ・アスパラガスのサラダ.