我正在进行抛硬币模拟,循环运行大约100万次.
每次运行循环时,我都希望保留RLE命令的表输出.不幸的是,简单的追加似乎不合适.每次我运行循环时,我得到的数据量略有不同,这似乎是一个难点.
这段代码让我知道我在做什么:
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
Run Code Online (Sandbox Code Playgroud)
因此,我没有五个单独的rle结果(在此模拟中,完整版中有100万个),我想要一个合并的rle表.希望这很清楚.显然我的实际代码有点复杂,因此任何解决方案都应尽可能接近我指定的代码.
更新:循环是绝对要求.没有ifs或buts.也许我可以拉出表(rle(x))数据并将其放入矩阵中.然而,绊脚石的另一个原因是一些较不频繁的运行长度并不总是在每个循环中出现.因此,我想我希望根据行程数有条件地填充矩阵?
在我放弃之前的最后更新:保留rle $值意味着保留了太多数据.我的模拟是大规模的,我真的只想保留rle的表输出.我保留每个循环的每个表(rle(x))并手动组合(将有数千个),或者我找到一种编程方式来保存数据(对于零和一些是),并且有一个表由在我继续时合并每个循环.
要么这很容易,要么按照规定,或者我不会这样做.这似乎是一个愚蠢的想法/要求,但这应该是偶然的,是否可以做到.
说真的是上次.这是一个动画gif,显示了我期望发生的事情.
每次循环后,循环数据都会添加到表中.这很清楚,我将能够进行沟通.