Я очистки переменной строки в Stata, которая имеет числовые значения, но иногда имеет значения, отформатированные в виде диапазона, так как в 1-50
или 1-3
и т.д.Stata Строка Диапазон очистки
Когда я пытаюсь destring эти переменные, эти досадные диапазоны мешают мне сделать это.
Что я хотел бы сделать, это заменить диапазон на среднее значение первого числа и последнего номера в диапазоне. Я попытался следующие строковые функции, чтобы сделать это:
replace `var' = ((regexs(1) + regexs(3))/2) if regexm(`var', "([0-9]*)([\-])([0-9]*)")
Однако Stata не понимает средний ((regexs(1) + regexs(3))/2)
, потому что он читает regexs(1)
и regexs(2)
как подстроки.
Я знаю, что могу сделать это, создав новые переменные, но данные, с которыми я работаю, имеют тысячи переменных, поэтому я бы предпочел просто заменить существующую строку.
Любые идеи о том, как это сделать?
Заранее спасибо
Обратите внимание, что иногда для диапазонов лучше понимать геометрическое среднее, если оба значения являются положительными. (Тысячи _переменных_ или тысяч _values_?) –
Отмечено, спасибо! Иногда цифры могут быть отрицательными, и у меня около 1500 переменных, а не значений –