正しいコード
# Block 1
<- read_csv("Data.csv")
df
# Block 2
<- df %>%
df select(var1, var3, var4)
# Block 3
<- df %>%
df mutate(sum_3_4 = var3 + var4)
Data.csv
という名の表形式データがあり、var1
、var2
、var3
、var4
、var5
という列で構成されているとしよう。このデータを用いて以下のような処理を行うとする。
Data.csv
を読み込みdf
という名のオブジェクトとして格納する。df
からvar1
、var3
、var4
列のみ残し、df
を上書きする。df
にsum_3_4
という新しい列を追加し、その値はvar3
とvar4
の和とする。以上の処理を行うコードは以下の通りである(つまり、以下のコードが正解例)。
しかし、2番目のブロックで以下のような入力ミスがあったとしよう。
この場合、3番目のブロックは正しく実行されない。なぜなら、2ブロック目においてvar4
とvar5
列を除外したため、3ブロック目のコードを実行する時点でdf
にvar4
列がないからだ。ここで2ブロック目のコードを正しいコードへ修正したとしよう(var1, var2, var3
をvar1, var3, var4
に修正)。そして2ブロック目のコードを実行する。どうなるだろうか。
結果はエラーである。最初はうまく行ったものの、なぜか今回はエラーが出る。これはなぜだろうか。既に我々はdf
からvar1
、var2
、var3
列のみを抽出した。つまり、今のdf
にはvar4
とvar5
列は存在しない。そこでvar1
、var3
、var4
を抽出するコードを実行してもvar4
列が存在しないからエラーが発生する。
対処法は簡単だ。df
をvar1
、var2
、var3
、var4
、var5
が全て入っている状態に戻すことだ。したがって、以上の例だと、2ブロック目のコードを修正した場合は1ブロック目から改めて実行する必要がある。
以上の話を難しく感じる場合は、コードミスを修正した後はコードを1行目から再実行することをおすすめする。