カスタム R コマンドで case_when() を使った際に以下のエラーが出る場合があります。
Error in dplyr::case_when(x, …) :
Case 1 (x) must be a two-sided formula, not a <tbl_df/tbl/data.frame> object.
このエラーは、case_when の条件式 の書き方ではなく、case_when をデータフレームに直接適用していることが原因です。case_when() は「条件 ~ 値」の formula を引数に取る関数で、データフレームを第一引数に渡すことはできません。
例: エラーになる書き方
case_when( ID == "A" ~ as.Date("2026-05-18"), ID == "B" ~ as.Date("2026-05-17"), TRUE ~ データ取得日)
例: 正しい書き方 (mutate で囲む)
mutate( 日付 = case_when( ID == "A" ~ as.Date("2026-05-18"), ID == "B" ~ as.Date("2026-05-17"), TRUE ~ データ取得日 ))
mutate(列名 = case_when(...)) の形にすることで、case_when の結果が「日付」列として元データに追加されます。