2014-04-01から1ヶ月間の記事一覧

Rで,長さ100の数列があって,連続する5個の数の和を全て(96個)欲しいとき,どうすれば賢いかな

R F#

リアル・マネーボール界隈では超有名で、知らない人はもぐりと言われるブログである 300億円欲しい の著者@gg_hatano氏がRで, 長さ100の数列があって, 連続する5個の数の和を全て(96個)欲しいとき, どうすれば賢いかな— はたむ (@gg_hatano) 2014, 4月 28な…

ファイルにデータ(Seq系)を保存したい

F#

F#でいろんな乱数を作りたい - My Life as a Mock Quant で作成した乱数などを保存したい場合のお話。以下のコードでOKだった。 using (System.IO.File.CreateText("test.txt")) (fun file -> Normal.Samples(new MersenneTwister(), 1.0, 3.0) |> Seq.take …

F#でいろんな乱数を作りたい

F#

掲題の件、System.Randomを使うと言うという手もありますが、やはり一様乱数だけだと不便なので、統計系に強いライブラリの助けを借りて作業したい、そういうことです。 それにはMath.NET Numerics Math.NET Numerics を使うと良い。とりあえず、NuGetなりで…

2次元配列からある特定の行/列のみを抽出する場合にはアスタリスク「*」を使う

F#

多次元配列もそうなんだろうけど、「*」を使うことによって、行列のある行・列を抽出することができるぞと。 さらに例えば「1..1」と書くか「1」と書くかで、返却が一次元配列になるか二次元配列になるかをコントロールすることができる。 > let x = Array2D…

何もしなくても、クラスのメソッドと通常の関数が同じように扱える

F#

クラスのメソッドだろうが、関数だろうがそこんとこ区別しないいF#さん素敵ですという話。 以下の例は、Hogeクラスのメソッド(func)を、関数gを引数に取る関数fに対して、hoge.funcを突っ込んでもちゃんと動くぞという確認。 > type Hoge() = member this.fu…

計算終了を音で伝える

R

長い計算(シミュレーション)を、遅い遅いと言われているR上で走らせるととんでもない時間がかかる。 なので「ご飯の用意をしつつ計算させておいて、その計算が終わったらまた別な計算を行いたい」みたいな状況だと、 計算の終了を音で知らせてアナウンスして…

F#では数値に対して"単位"を設定できるので、計算ミスが減るのです

F#

"長さ(m or km etc)"やら"時間(s or hour etc)"などの単位が絡んだ計算、特に金融なんかだと為替レートが絡んだ計算で、かけ算すべきなのか割り算すべきなのかよく間違えますよね?そんな貴方にお勧めしたいF#です。以下、ドル円レートの変換を計算するとい…

日中足のデータをxts型に倒す

R

むかーしに書いた記事 xtsへのコンバート - My Life as a Mock Quant のやり方「as.xts(read.zoo(hoge))」だと、日中足のデータが正しく読めねぇよ!Rでの日中足の扱いはググっても情報が少ない。昨夜のも日足データなら、 y<-as.xts(zoo(x)) だけでおk(by …

クリップボードからのデータ整形あるある

F#

たとえばExcel上に行列っぽく固まっているデータ を、チャっとCtrl+Cでコピッて、CSVファイルっぽくしたいな、そういう時はF#の出番です。 コピーした状態で以下のコードを実行すればよい。 > open System.Windows.Forms;; > Clipboard.GetText().Split('\r'…

クラス/レコードのオブジェクトを別な変数でlet束縛した時、これは値じゃなくて参照です

F#

F#で適当なクラスのオブジェクトを作って、それを他の変数にlet束縛しても、それは値の丸コピーではなくて、参照になるとそういうことです。 > type Hoge(x:int)= - member val X = x with get, set;; type Hoge = class new : x:int -> Hoge member X : int…

magrittrがいい感じ

R

dplyrパッケージとmagrittrの組み合わせはいい感じだ。 dplyrパッケージで出来るだけデータフレームの状態でデータを捌いておいて magrittrパッケージの関数を使って、必要なところだけベクトル化して捌く というイメージだな。 magrittrパッケージのマニュ…