少し前に改訂新版が出ましたね、前処理大全。 7-5「不等式条件での結合」は、旧版から変わっていないトピックですが、実は dplyr はこの数年の間に進化しています。 当時は非等価結合ができなかったんですが、バージョン1.1.0(2023年1月リリース)からできるようになっています。 具体的には、join_*() に join_by() という指定ができるようになっていて、これを使うと全組み合わせのうち条件を満たすものだけを残して join してくれます。 例題では、reservation にある reserved_at 列が campaign の starts_at 列と ends_at 列の期間に含まれていればいいので、以下のような書き方になります。 reservation |> left_join( campaign, join_by(between(reserved_at, star