裏 RjpWiki

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

plyr なんて...(その10)

2015年11月12日 | ブログラミング

複数のパラメータを持つ分析を記録するという例

> # mdply は,基本的には mapply
> f1 = function() mdply(data.frame(mean=1:3, sd=1:3), rnorm, n=2)
> set.seed(1); (ans = f1())
  mean sd        V1        V2
1    1  1 0.3735462 1.1836433
2    2  2 0.3287428 5.1905616
3    3  3 3.9885233 0.5385948
>
> # data.frame は本来不要
> f2 = function() {
+     mean=1:3
+     sd=1:3
+     d = data.frame(mean, sd, t(mapply(function(x, y) rnorm(2, x, y), mean, sd)))
+     colnames(d)[3:4] = paste("V", 1:2, sep="")
+     d
+     }
> set.seed(1); identical(ans, f2())
[1] TRUE
>
> # mapply は mdply の 5 倍速
> benchmark(f1(), f2(), columns=c("test", "replications", "elapsed", "relative", "user.self", "sys.self"), replications=1000, order=NULL)
  test replications elapsed relative user.self sys.self
1 f1()         1000   2.118    4.555     2.122    0.012
2 f2()         1000   0.465    1.000     0.463    0.003

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« plyr なんて...(その9) | トップ | plyr なんて...(その11) »
最新の画像もっと見る

コメントを投稿

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