我有大量的数据,但这里只是一个代表性的例子。用循环定义数据段(for和if)
data=c(0,0,0,0,0.1,0.1,0.1,0,0,0,0,0.2,0.1,0,0,0.3,0.1,0.1,0,0)
我试图定义与不同于零,并使用不等于零(事件必须不包括零个值)最后值结束第一值开始独立的事件。所以在这种情况下,我会有三个事件:(0.1,0.1,0.1),(0.2,0.1)和(0.3,0.1,0.1)。首先,我试图界定第一数量不为零:
events <- list()
for(i in seq(1,length(data),1)){
if(data[i]==0) next
else start1=i
当环路发现不同于零我试图与另一对循环(也重复)来定义事件的结束的第一个值的,但非我的解决方案工作...的
然后我试图与数据的部分定义新的列表:
events[[paste('ev', end1-start1)]] = data[start1:end1]
rm(start1); rm(end1)
}
我忘了,开始和结束的功能,当我改变的变量名... 谢谢
开始用'RLE(数据= = 0)'。 'rle'是我最喜欢的功能之一,用于查找这样的条纹。 – 2013-03-07 14:14:22