台風が来そうで来ない@関東。
Rでの解析の一例として、台風の軌道とか強さとかを処理してみよう。
台風のデータは実験心理学のデータに近いので、その手の解析には応用できると思います。
台風が来そうで来ない@関東。
Rでの解析の一例として、台風の軌道とか強さとかを処理してみよう。
台風のデータは実験心理学のデータに近いので、その手の解析には応用できると思います。
Posted in programming | Tagged ggplot2, r | Leave a Comment »
Rにビルトインされたオブジェクト指向的なフレームワークを提供する仕組みとして、S3以外に、S4とR5がある。大規模なパッケージを作るときとか、mutableな機能を実装するときにはとても役立つ。
あとR5はR5 reference classというように、参照渡しのセマンティックで実装されてるので、関数型言語らしさはなくなっちゃうんだけど、馬鹿でかいデータとかある時にはコピーが発生しないので、効率がよくなるはず。
ここらへんを使ってる人は、特に説明もいらないと思うので、デバッグのやり方は以下の実例で。ポイントだけ箇条書きします。
traceにsignatureを渡す。debugなり、traceなりで、デバッグできる。なお、既存のパッケージとかじゃなくて、開発中で自分でソースコードをいじれるなら、直接broweserを仕込むのが一番早いとおもう。
Posted in programming | Tagged debug, r | Leave a Comment »
S3ジェネリックは、オブジェクト指向っぽい簡単なメソッドディスパッチの機能を提供する。詳細は、?S3Methodsとか、?methodsとかで。
普段使ってる関数の多くが、S3メソッドとして実装されてる。例えば、plot:
実行例
> methods(plot) # methodsで、その名前のS3メソッドの一覧を表示 [1] plot.acf* plot.data.frame* plot.decomposed.ts* plot.default plot.dendrogram* plot.density [7] plot.ecdf plot.factor* plot.formula* plot.hclust* plot.histogram* plot.HoltWinters* [13] plot.isoreg* plot.lm plot.medpolish* plot.mlm plot.ppr* plot.prcomp* [19] plot.princomp* plot.profile.nls* plot.spec plot.spec.coherency plot.spec.phase plot.stepfun [25] plot.stl* plot.table* plot.ts plot.tskernel* plot.TukeyHSD Non-visible functions are asterisked
Posted in programming | Tagged debug, r | Leave a Comment »
今までのやり方は、前もってデバッグを仕込んでおいて、動作を確認する、という感じなので、デバッグすべき場所が分かっていることが前提だった。だけど多くの場合、「エラーどこで起こってんのー」と、死んだあと(post-morten)にデバッグしたいことが多々ある。
デフォルトではRはエラーがどこで起こったか非常に分かりづらいんだけど、post-morten debuggingが簡単にできる方法が幾つかある。
tracebackでエラーまでのコールスタックをたどる。option(error)をいじってエラーをデバッグのトリガーにする。dump.frameとdebuggerを組み合わせて、天国からデバッグする。Posted in programming | Tagged debug, r | Leave a Comment »
traceでフレキシブルなデバッグtraceで、かなりフレキシブルなデバッグを仕込める。実際、setBreakpointはtraceのラッパ。
trace(fun, hoge)でfunに対してhogeを埋め込める。traceを解除するにはuntrace(fun)で。
以下、traceの使い方を簡単に解説。
Posted in programming | Tagged debug, r | 1 Comment »
いくつかある。基本的には、
debug: 既存の関数でお手軽にデバッグしたい。browser: 自分で関数書いてます、デバッグしたい。setBreakpoint: スクリプトファイルの行番号からデバッグしたい。trace: いろいろやりたい。別記事で解説。という感じだと思う。他にもあるかもしれない。
Posted in programming | Tagged debug, r | Leave a Comment »
デバッグは基本的にdebugとかbrowserとかでインタラクティブ・デバッグモードに入って行うことが多い。使えるコマンドは以下の通り。
n (または空行でリターン): 現在の式を実行。c (または cont): デバッグモードを終了して、以降の式を実行。Q: デバッグモードを終了。以降の式は実行されない。where: コールスタック(関数呼び出しのスタック)を表示。
その他の入力は、Rのコンソール上での入力と同じように評価される。ls()で変数リストを表示するとかは便利。変数名を入れればその変数がprintされる。
Posted in programming | Tagged debug, r | Leave a Comment »