2011-07-03 10 views
1

私はMCMCアルゴリズムで反復の配列を持っています。行は、分布からの描画を表します。列は、分布内のパラメータ(変数)を表します。説明を簡単にするために、2つの変数、5回の反復を仮定します。だから私は持っている:R:{reshape} :(melt.data.frame)どのようにして列を複製できますか?

> melt(draws) 
Using as id variables 
    variable  value 
1 iteration 1.0000000 
2 iteration 2.0000000 
3 iteration 3.0000000 
4 iteration 4.0000000 
5 iteration 5.0000000 
6  alpha -0.1042616 
7  alpha 1.0707001 
8  alpha 0.2166865 
9  alpha 0.0771617 
10  alpha -0.8893614 
11  beta -0.4846693 
12  beta -1.5950729 
13  beta -0.7178340 
14  beta 1.0149766 
15  beta -0.3128256 

をしかし、私は(手で編集)と同等のものを得るように私はアウトホールド反復にしたい:私はデータセットを溶かすとき

> draws <- data.frame(iteration = c(1:5), 
         alpha  = rnorm(5,0,1), 
         beta  = rnorm(5,0,1)) 

    iteration  alpha  beta 
1   1 -0.3157940 0.2122465 
2   2 1.0087298 -0.2346733 
3   3 1.0366165 0.3472915 
4   4 -2.4256564 0.9863279 
5   5 -0.6089072 -1.1213000 

は、私が手

> melt(draws) 
Using as id variables 
    iteration variable  value 
1   1  alpha -0.1042616 
2   2  alpha 1.0707001 
3   3  alpha 0.2166865 
4   4  alpha 0.0771617 
5   5  alpha -0.8893614 
6   1  beta -0.4846693 
7   2  beta -1.5950729 
8   3  beta -0.7178340 
9   4  beta 1.0149766 
10   5  beta -0.3128256 

答えて

7

サプライmeltからid変数:

melt(draws, id = "iteration") 

は与える:

iteration variable  value 
1   1 alpha -0.02765436 
2   2 alpha -1.42138702 
3   3 alpha 0.83525096 
4   4 alpha -1.10677555 
5   5 alpha 0.72465936 
6   1  beta 0.59269720 
7   2  beta -0.32164072 
8   3  beta -1.31097204 
9   4  beta 0.94993620 
10   5  beta 0.20919169 
2

フン。私はいつも、私はhelp(melt.array)を読んでいた

...答えを見つける前に質問を頼むが、私は私の質問を投稿し、data.frameに変換されたとき、それは最終的にhelp(melt.data.frame)で答えに私を導きました。

私が欲しいものを得るために、私が使用します。

myMelt <- melt(draws, id.var = "iteration"); 

を私はその後、多面的なプロット行うことができるよう:

ggplot(myMelt, aes(x = iteration,y = value)) + geom_point() + stat_smooth() + facet_grid(variable ~ ., scales="free")

enter image description here

関連する問題