/*Помогите, пожалуйста!
Имеется набор переменных, созданных командой VECTOR. Требуется переименовать эти
переменные, дать им узнаваемые имена. Массив данных выглядит примерно так
(я преобразовываю данные временных срезов в лонгитюдный массив):
ID родство рост1 рост2 ... рост15 вес1 вес2 ... вес15 ...
1 мать 67 150
1 отец 70 185
.
1 брат/сестра13 62 135
Требуется переименовать переменные так, чтобы значение отношения родства было
отражено в названии переменной. Другими словами, новые переменные должны называться примерно
так (прошу прощения за длинные имена. Это только для примера, в реальных данных там будет не более
8 символов):
ID ростмать ростотец ... ростбрат/сестра13 весмать весотец...
Учитывая, что имеется более 150 таких переменных, не хотелось бы переименовывать их вручную.
Есть ли какой-то способ использовать, например, синтаксис DO REPEAT чтобы автоматически переименовать?
Буду признательна за любую помощь по этому вопросу!
Спасибо,
Сильвия */.
************************************.
* Вот ответ Рея в конференцию SPSS 15 июля 2000 г.
*Зададим имена переменных.
NEW FILE.
DATA LIST LIST /id(F8).
BEGIN DATA
END DATA.
VECTOR height(15F8) weight(15F8) test(15F8).
set mprint=on.
DEFINE !rename (!POS=!CMDEND)
!DO !var !IN (!1)
!IF (!LENGTH(!var)<6) !THEN
!LET !var2=!var
!ELSE
!LET !var2=!SUBSTR(!var,1,5)
!IFEND
RENAME VARIABLE (!CONCAT(!var,'1')=!CONCAT(!var2,'mdr')).
RENAME VARIABLE (!CONCAT(!var,'2')=!CONCAT(!var2,'ftr')).
!DO !cnt=1 !TO 13
RENAME VARIABLE (!CONCAT(!var,!LENGTH(!CONCAT(!BLANK(!cnt),'xx' )))=!CONCAT(!var2,'s',!cnt)).
!DOEND
!DOEND
!ENDDEFINE.
* Вызовем макрос.
!rename height weight test.