約100万回実行されるループでコイントスシミュレーションを実行しています。
ループを実行するたびに、RLEコマンドからのテーブル出力を保持したいと思います。残念ながら、単純な追加は適切ではないようです。ループを実行するたびに、わずかに異なる量のデータが取得されます。これは、問題の1つと思われます。
このコードは、私が何をしているのかを示しています。
N <- 5 #Number of times to run
rlex <-NULL
#begin loop#############################
for (i in 1:N) { #tells R to repeat N number
x <-sample(0:1, 100000, 1/2)
rlex <-append(rlex, rle(x))
}
table(rlex) #doesn't work
table(rle(x)) #only 1
したがって、5つの個別のrle結果(このシミュレーションでは、フルバージョンで100万)を使用する代わりに、1つのマージされたrleテーブルが必要です。これが明確であることを願っています。明らかに、私の実際のコードはもう少し複雑なので、どのソリューションも私が指定したものにできるだけ近いはずです。
更新:ループは絶対的な要件です。ifsまたはbutsはありません。おそらく、table(rle(x))データを取り出して、それを行列に入れることができます。ただし、ここでも障害となるのは、頻度の低いランレングスの一部が各ループで常に表示されるとは限らないという事実です。したがって、ランレングス数に基づいて条件付きでマトリックスを埋めようとしていると思いますか?
諦める前の最後の更新:rle $ valuesを保持すると、保持されるデータが多すぎることを意味します。私のシミュレーションは大規模であり、実際にはrleのテーブル出力のみを保持したいと考えています。各ループの各テーブル(rle(x))を保持し、手動で結合する(数千になります)か、データを保持するプログラム的な方法(0と1の場合はyes)を見つけて、から形成される1つのテーブルを作成します。私が進むにつれて、個々のループのそれぞれをマージします。
指定されているように、これは簡単に実行できるか、または実行しません。それはばかげた考え/要求に見えるかもしれませんが、それができるかどうかに付随するはずです。
真剣に前回。これは、私が何を期待しているのかを示すアニメーションGIFです。
ループの各反復後、データがテーブルに追加されます。これは私がそれを伝えることができるようになるのと同じくらい明確です。