В моих скриптах Stata do
мне часто приходится сравнивать даты, которые могут отсутствовать. К сожалению, внутреннее представление .
является наибольшим возможным числом из данного диапазона, поэтому справедливо следующее:
5 < .
Это может стать довольно раздражающим, например. при проверке, находится ли дата в определенном диапазоне:
gen between_start_stop = . if d == .
replace between_start_stop = 1 if ///
!missing(d) & !missing(start) & !missing(stop) & ///
start < d & d < stop
replace between_start_stop = 0 if ///
((!missing(d) & !missing(start) & !(start < d)) | ///
(!missing(d) & !missing(stop) & !(d < stop))
вместо следующего:
gen between_start_stop = (start < d) & (d < stop)
Можно ли использовать операторы сравнения , которые работают с троичной логикой ?
Т.е., я бы хотел, чтобы следующие утверждения были верными:
(5 < .) == .
(. < .) == .
(. < 5) == .
(. & 1) == .
(. & 0) == 0
etc...