I have data about machines in the following form Number of rows - 900k
Data
          A   B   C   D   E   F   G   H   I   J   K   L   M   N
         ---- -- --- ---- --- --- --- --- --- --- --- --- --- ---
     1    1   1   1   1   1   1   1   1   1   0   1   1   0   0
     2    0   0   0   0   1   1   1   0   1   1   0   0   1   0
     3    0   0   0   0   0   0   0   1   1   1   1   1   0   0
1 indicates that the machine was active and 0 indicates that it was inactive.
I want my output to look like
          A   B   C   D   E   F   G   H   I   J   K   L   M   N
         ---- -- --- ---- --- --- --- --- --- --- --- --- --- ---
     1    1   1   1   1   1   1   1   1   1   1   1   1   0   0
     2    0   0   0   0   1   1   1   1   1   1   0   0   1   0
     3    0   0   0   0   0   0   0   1   1   1   1   1   0   0
Basically all I am trying to do is look for zeros in a particular row and if that zero is surrounded by ones on either side, replace 0 with 1
example -
in row 1 you have zero in column J but you also have 1 in column I and K which means I replace that 0 by 1 because it is surrounded by 1s
The code I am using is this
  for(j in 2:13) {
    if(data[i,j]==0 && data[i,j-1]==1 && data[i,j+1]==1){
      data[i,j] = 1
    }
  }
}
Is there a way to reduce the time computation for this? This takes me almost 30 mins to run in R. Any help would be appreciated.
 
     
     
     
    