我的数据集大约有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
答案 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样式循环,而是遍历索引。