Code Fix

中級 › which() の戻り値と論理ベクトルによる添字指定を混同するとずれる › パターン1

which() の戻り値と論理ベクトルによる添字指定を混同するとずれる

which(条件)は条件を満たす要素の「位置(添字番号)」を返しますが、条件そのもの(論理ベクトル)を直接添字として使うのとは意味が違います。

 1  scores <- c(45, NA, 91, 33, 76)
 2  passed <- scores[___________________]
                              ^
 3  cat(passed, "\n")
出力: NA 91 76

空欄を埋めて実行を通す

広告
広告スロット(未設定)

which() の戻り値と論理ベクトルによる添字指定を混同するとずれる

which()の結果をさらに論理ベクトルとして使うと、位置の数値がTRUE/FALSEとして解釈され、意図と違う要素が選ばれます。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)