Переименование векторных переменных
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | /*Помогите, пожалуйста! Имеется набор переменных, созданных командой 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. |