2012年3月11日日曜日

PostgreSQLで統計解析 PL/R 基礎編3 : CRAN(Rライブラリ)利用


CRAN

perlにCPANがあるように、CRANというRのモジュールを公開するネットワークがあり、多くのプログラムが公開されている。
The Comprehensive R Archive Network

下記記事を参考に、PL/RでCRANから取得したモジュールを利用してみる。
zooパッケージを使って行列の欠損値を補間する(R Advent Calendar 2011) - My Life as a Mock Quant


Install R Package

パッケージのinstallはRから
r #R起動
> install.packages("zoo")


Use R Package

パッケージはlibrary(zoo)で読み込み。
行列の欠損を補完する関数を作成
CREATE OR REPLACE FUNCTION na_locf(matrix int4[][]) RETURNS int4[][] AS '
    library(zoo);
    return(na.locf(matrix))
' LANGUAGE 'plr';
SELECT na_locf(ARRAY[ARRAY[1,2,3],ARRAY[4,null,6],ARRAY[7,8,9]]);
-- nullが2で補完される。

CREATE OR REPLACE FUNCTION na_approx(matrix int4[][]) returns int4[][] as ' 
    library(zoo);
    return(0.5 * (na.approx(matrix) + t(na.approx(t(matrix)))))
' LANGUAGE 'plr';
SELECT na_approx(ARRAY[ARRAY[1,2,3],ARRAY[4,null,6],ARRAY[7,8,9]]);
--nullが5で補完される。
PostgreSQLとRのデータ構造の違いに気をつければライブラリの使用は比較的簡単

0 件のコメント:

コメントを投稿