2014-04-01から1ヶ月間の記事一覧
リアル・マネーボール界隈では超有名で、知らない人はもぐりと言われるブログである 300億円欲しい の著者@gg_hatano氏がRで, 長さ100の数列があって, 連続する5個の数の和を全て(96個)欲しいとき, どうすれば賢いかな— はたむ (@gg_hatano) 2014, 4月 28な…
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 …
掲題の件、System.Randomを使うと言うという手もありますが、やはり一様乱数だけだと不便なので、統計系に強いライブラリの助けを借りて作業したい、そういうことです。 それにはMath.NET Numerics Math.NET Numerics を使うと良い。とりあえず、NuGetなりで…
多次元配列もそうなんだろうけど、「*」を使うことによって、行列のある行・列を抽出することができるぞと。 さらに例えば「1..1」と書くか「1」と書くかで、返却が一次元配列になるか二次元配列になるかをコントロールすることができる。 > let x = Array2D…
クラスのメソッドだろうが、関数だろうがそこんとこ区別しないいF#さん素敵ですという話。 以下の例は、Hogeクラスのメソッド(func)を、関数gを引数に取る関数fに対して、hoge.funcを突っ込んでもちゃんと動くぞという確認。 > type Hoge() = member this.fu…
長い計算(シミュレーション)を、遅い遅いと言われているR上で走らせるととんでもない時間がかかる。 なので「ご飯の用意をしつつ計算させておいて、その計算が終わったらまた別な計算を行いたい」みたいな状況だと、 計算の終了を音で知らせてアナウンスして…
"長さ(m or km etc)"やら"時間(s or hour etc)"などの単位が絡んだ計算、特に金融なんかだと為替レートが絡んだ計算で、かけ算すべきなのか割り算すべきなのかよく間違えますよね?そんな貴方にお勧めしたいF#です。以下、ドル円レートの変換を計算するとい…
むかーしに書いた記事 xtsへのコンバート - My Life as a Mock Quant のやり方「as.xts(read.zoo(hoge))」だと、日中足のデータが正しく読めねぇよ!Rでの日中足の扱いはググっても情報が少ない。昨夜のも日足データなら、 y<-as.xts(zoo(x)) だけでおk(by …
たとえばExcel上に行列っぽく固まっているデータ を、チャっとCtrl+Cでコピッて、CSVファイルっぽくしたいな、そういう時はF#の出番です。 コピーした状態で以下のコードを実行すればよい。 > open System.Windows.Forms;; > Clipboard.GetText().Split('\r'…
F#で適当なクラスのオブジェクトを作って、それを他の変数にlet束縛しても、それは値の丸コピーではなくて、参照になるとそういうことです。 > type Hoge(x:int)= - member val X = x with get, set;; type Hoge = class new : x:int -> Hoge member X : int…
dplyrパッケージとmagrittrの組み合わせはいい感じだ。 dplyrパッケージで出来るだけデータフレームの状態でデータを捌いておいて magrittrパッケージの関数を使って、必要なところだけベクトル化して捌く というイメージだな。 magrittrパッケージのマニュ…