2008-05-01から1ヶ月間の記事一覧

ちょっと気になったこと

R

関数の仮引数に対して、呼び出し時の引数が少なくても問題ない。 > (function(x,y){})(10) NULL でも、関数内で使われるとダメ。 > (function(x,y){y})(10) 以下にエラー (function(x, y) { : 引数 "y" がありませんし、省略時既定値もありません 関数実行時…

R の継続

R

R に callCC という関数があって、 callCC package:base R Documentation Call With Current Continuation Description: A downward-only version of Scheme's call with current continuation.と書かれていたので、試してみた。http://www.stdio.h.kyoto-u.…

n-gram が簡単にできそう

R

http://www.okada.jp.org/RWiki/?R%A4%CE%B4%F0%CB%DC%A5%D1%A5%C3%A5%B1%A1%BC%A5%B8%C3%E6%A4%CE%BB%FE%B7%CF%CE%F3%A5%AA%A5%D6%A5%B8%A5%A7%A5%AF%A5%C8%B0%EC%CD%F7 を見てると、embed というのがあった。 > example(embed) embed> x <- 1:10 embed> em…

時系列データの線形フィルタ

R

Filter が vector から要素を取り出す関数なら filter は何だろう?と思ったので調べてみた。 > ?filter Linear Filtering on a Time Series Description: Applies linear filtering to a univariate time series or to each series separately of a multiva…

function を書かずに済む Filter

R

Filter 関数で function を書かずに済むようにしてみた。 デフォルトの引数を「.」にして、Bool値のベクトル返すような式を第一引数に入れる。 fi <- function(f, .) { ind <- as.logical(eval(substitute(f))) .[!is.na(ind) & ind] } > fi(3 < . & . < 7, …

順列を作ってみる

R

R には combn という組み合わせを作ってくれる関数がある。 > combn(1:3,2) [,1] [,2] [,3] [1,] 1 1 2 [2,] 2 3 3 > combn(letters[1:3],2) [,1] [,2] [,3] [1,] "a" "a" "b" [2,] "b" "c" "c" けど順列を作ってくれる関数はなかったので、つくってみた。 p…

S3 メソッドを使ってみる

R

http://d.hatena.ne.jp/syou6162/20080521/1211321228 をみて、Filter も で使えた方が一貫性があるし、Filter って書くよりも短いよね、と思ったので書いてみた。 演算子の動作を定義するには [ 関数を書き換えればいい。 [ 関数は呼び出す時には "["(1:10,…