Stata: переименовать все переменные, которые не начинаются с x
Я хотел бы добавить префикс или суффикс для всех переменных, которые не начинаются с x:
clear
input xa xb c d
1 1 1 1
end
Я думал что-то вроде этого: rename (!x)* y*
который должен дать этот результат: xa xb yc yd
, Спасибо за любую подсказку.
2 ответа
Это не идеал в моей голове, но, возможно, что-то вроде renpfix
может быть полезным для вас:
. clear
. input xa xb c d
xa xb c d
1. 1 1 1 1
2. end
. list
+-----------------+
| xa xb c d |
|-----------------|
1. | 1 1 1 1 |
+-----------------+
. renpfix "" y
. renpfix yx x
. list
+-------------------+
| xa xb yc yd |
|-------------------|
1. | 1 1 1 1 |
+-------------------+
Здесь я сначала добавил префикс ко всем переменным, в результате чего ваши первые две переменные имеют префикс yx
; тогда я заменил yx
префикс, чтобы вернуться к x
для первых двух переменных.
Обновить
Другой вариант заключается в использовании ds
или же findname
(установить с помощью search findname
) и используя not
аргумент для отрицания сопоставленных переменных
. clear
. input xa xb c d
xa xb c d
1. 1 1 1 1
2. end
. list
+-----------------+
| xa xb c d |
|-----------------|
1. | 1 1 1 1 |
+-----------------+
. ds x*, not
c d
. foreach v in `r(varlist)' {
2. rename `v' y`v'
3. }
. list
+-------------------+
| xa xb yc yd |
|-------------------|
1. | 1 1 1 1 |
+-------------------+
ds
а также findname
сохранить свои результаты в `r(varlist)'
так что вы можете использовать foreach
после определения соответствующих переменных.