*! 1.1.0 MLB 06Oct2022 program define lany, sortpreserve version 8.1 syntax [varlist] [if/] , by(varlist) [sort(varlist) *] if `"`if'"' == "" { di as err "{p}an if condition is required{p_end}" exit 198 } if "`sort'" == "" { tempvar sort qui gen double `sort' = _n } // find the ids when at least one if is true quietly { tempvar mark bysort `by' (`sort') : gen `mark' = (`if') by `by' : replace `mark' = sum(`mark') by `by' : replace `mark' = `mark'[_N] > 0 } // list list `varlist' if `mark', `options' end