开始和结束循环的多个条件

时间:2017-01-05 17:41:03

标签: r

我的数据集大约有400万行。数据的示例如下所示。我想运行一个具有多个开始和结束条件的循环。

循环首先应该查找speed = 0和load = 0,然后它必须检测到负载的变化(ex sl no = 6,其中speed = 0但负载不等于零)。一旦检测到负载变化,循环应该从前3行开始复制,即。 sl没有。 3.当检测到速度(速度和有效负载不等于零)时,循环应该结束,并且应该复制接下来的3行。因此,我需要循环从sl 3-12开始复制。循环应该再次重复并寻找起始2条件。

Sl.No    Speed    Load
1        20       50
2        20       10
3         0       0 
4         0       0
5         0       0
6         0       60
7         0       120
8         0       180
9         10      180
10        11      180
11        20      180
12        25      180

1 个答案:

答案 0 :(得分:1)

你应该写这样的东西(这是一个嵌套循环),然后在它们中使用索引i和j,以便前后移动:

for(i in seq_along(data)){
  if(#your condition e.g. data[i][1]==0 & data[i][2]==0)
  {  
    # do something with data[i]
    # do something with data[i-1]
    # do something with data[i-2]
    # do something with data[i-3]
    j <- i + 1
    while(#your other condition: e.g. data[j][1]==...)
    {
        # do something with data[j]
        j <- j + 1
    }
    # Next three:
    # do something with data[j]
    # do something with data[j+1]
    # do something with data[j+2]
}

请注意,我不是在R:for(数据中的项目)中使用通常的foreach样式循环,而是遍历索引。