Stata вернет отсутствующий, если его попросят принять логарифм нулевых или отрицательных значений.Но
generate log_x = log(x)
и
generate log_x = log(x) if x > 0
будут иметь точно такой же результат, пропуски в наблюдениях с проблемными значениями.
Большой вопрос здесь - статистический.Почему вы хотите взять логарифмы такой переменной в любом случае?Если ваша идея заключается в преобразовании переменной, тогда доступны другие преобразования.Если переменная является ответной или конечной переменной, то обобщенная линейная модель с логарифмической связью будет работать, даже если есть нулевые или отрицательные значения;идея состоит в том, что средняя функция должна оставаться положительной.
Было много, много тем, поднимающих эти проблемы на Cross Validated и Statalist.
Я не могу представить, почему вы думаете, что цикл необходим или полезен здесь.С generate
утверждениями вышеописанного типа Stata автоматически зацикливается на наблюдениях.