裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

cxxfunction std::transform を使う例

2011年11月03日 | ブログラミング

> src <- '
+     Rcpp::List input(data);
+     Rcpp::Function f(fun);
+     Rcpp::List output(input.size());
+     std::transform(input.begin(), input.end(), output.begin(), f);
+     output.names() = input.names();
+     return output;
+ '
> cpp_lapply <- cxxfunction(signature(data="list", fun="function"), src, plugin="Rcpp")
> (a <- as.data.frame(matrix(1:12, 3, 4)))
  V1 V2 V3 V4
1  1  4  7 10
2  2  5  8 11
3  3  6  9 12
> cpp_lapply(a, summary)
$V1
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
    1.0     1.5     2.0     2.0     2.5     3.0

$V2
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
    4.0     4.5     5.0     5.0     5.5     6.0

$V3
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
    7.0     7.5     8.0     8.0     8.5     9.0

$V4
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
   10.0    10.5    11.0    11.0    11.5    12.0

> cpp_lapply(a, min)
$V1
[1] 1

$V2
[1] 4

$V3
[1] 7

$V4
[1] 10

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« cxxfunction 関数を呼ぶ例 | トップ | cxxfunction 使えそうなもの... »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事