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

data.tableからの重複除去

R

unique関数+by引数な感じで。 > a <- data.table(A=1:5,B=letters[1:10]) > a A B 1: 1 a 2: 2 b 3: 3 c 4: 4 d 5: 5 e 6: 1 f 7: 2 g 8: 3 h 9: 4 i 10: 5 j > duplicated(a, by="A") [1] FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE > uniqu…

実はF#のオブジェクト指向ってしっくりこないんです!

F#

頭出し ネタが古い上に、C++に毒されているせいか、F#のOOP、つーかクラスの書き方がどうもしっくりこないので、まとめる。 七誌さんの F# - 七誌の開発Wiki がとても良かった。言い訳すると「えーマジクラス!?キモーイ。クラスが許されるのはC#までだよね…

typeで型に別名を付ける

F#

type使えば型に別名付けれるのか。C++のtypedefっぽい。 以下は、float*floatなタプルを例に、そのデータ型に対する+演算子をオーバーロードしてベクトルの和を計算させてみるって簡単な話。 > type Vector2D<'a> = 'a*'a;; type Vector2D<'a> = 'a * 'a > l…

気が付いたらRがF#になる日が来るのかもしれない、そんなことを考えていました

R F#

春ですね。最近はめっきりいろんなものの進化、早いですね。 例えばR界隈でいうと、データフレーム捌き用の高速処理ライブラリ「dplyr」の登場によって、 俺がおおよそ一年前に作ったplyrの資料がもう一年も経たずに役に立たなくなる。そういう進化の早い世…

関数ポインタ、あるいはそれをテンプレートの特殊化で捌く時用のメモ

C++

鳥頭化がひどいのでメモっておこうって。 結論として function_traitsの特殊化で、「R_(Arg_)」と「R_(*)(Arg_)」は区別され、それはdecltype(hoge)なのかdecltype(&hoge)なのかに依る typeid関数に対しても&を付けてhoge関数を渡すか渡さないかで、void (__…

引数の型だけ違う(関数オブジェクト|関数)の処理をtemplateで切り分ける

C++

引数の型だけ違う関数オブジェクトの処理をtemplateで切り分ける−3 - My Life as a Mock Quant の続編。関数オブジェクトだけじゃなくて、関数でもOKにしてみた。ラムダ式でも動いた。関数ポインタが混ざってくると混乱する。 #include<iostream> #include<vector> #include<type_traits> /</type_traits></vector></iostream>…

ツリー構造を作る時のメモリを減らしたい

F#

Functionally option pricing by binomial tree - My Life as a Mock Quant で作成したツリー構造(完全二分木)だと、木の深さ/高さNに対して2^Nメモリ食うんでそれなんとかしたいぞと、 上記の例の場合、ノートの結合があるので、メモリ消費量は本来Nオー…

Functionally option pricing by binomial tree

F#

Introduction You may already know, there are their own implementation of option pricing codes by binomial tree model on the Web(see Reference) , and binomial tree method is no longer popular way to get a option price in Finance/Financial e…