Rのデータフレームで、同じ行の次の列の値と自分の値を参照して、置換を行う関数を教えて欲しいです！


Rのデータフレームで、同じ行の次の列の値と自分の値を参照して、置換を行う  
簡単な方法  
を教えて欲しいです！

下記画像のような処理をしたいです  
(自分のマス==1&&同じ行の次の列のマス==0)を満たす場合、自分のマスを2に変更

[![if\(自分のマス==1&&同じ行の次の列のマス==0\)、自分のマスを2に変更\)](https://i.stack.imgur.com/mpZ7D.jpg)](https://i.stack.imgur.com/mpZ7D.jpg)




こんなのは思いついてる範囲かもしれませんが、…以降の条件もよくわからなかたので。

[code]

    # データフレームの作成
    df <- rbind(c(NA,NA,1,1,1),
                c(1,0,0,0,0),
                c(1,1,0,0,0),
                c(1,1,1,0,0),
                c(NA,NA,1,0,0))
    
    # 行数でループ
    for( i in 1:nrow(df)){
      # 列数でループ
      for( j in 1:(ncol(df) -1)){
        # 検証する要素のNA判定、NAを含まない場合でTRUE
        if(!is.na(df[i,j])){
          # dfの要素で1の次の列に0があるか判定
        if((df[i,j] == 1 ) && (df[i,(j+1)] == 0)){
          # TRUEなら1を2に書き換える
          df[i,j] <- 2
        }
        }
      }
    }
    
[/code]

NA要素を含んでいるので処理が煩雑です。  
要素の数だけでループで確認しているので、要素が増えるとその分処理が遅くなります。  
あまりエレガントではありませｎ。

