Ваше использование разделителя ;
здесь не кусается, поэтому я его проигнорирую.
Ошибка в использовании subinstr()
, который должен иметь четыре аргумента, четвертый - количество замен, которые необходимо сделать.Смотри help subinstr()
.
Это работает (обратите внимание, пожалуйста, используйте минимальный полный проверяемый пример):
clear
set obs 1
generate intensity1 = 1
generate intensity2 = 2
foreach VAR of varlist intensity* {
local NEW = subinstr("`VAR'", "intensity", "int", 1)
rename `VAR' `NEW'
}
ds
Но цикл совершенно не нужен.Сначала давайте перевернем имена обратно, а затем покажем, как изменить их напрямую:
rename int* intensity*
rename intensity* int*
Подробнее см. help rename groups
.