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
* В файле данных много переменных. Некоторые из них имеют формат имени "aaaa0n",
где "a" - буква, а "n" - цифра.
* Мне требуется преобразовать такие переменные к имени с форматом "aaanr".

* Решение: Ray.

DATA LIST /v1(F8.0).
BEGIN DATA.
1
END DATA.

NUMERIC vname01 TO vname09 vara varb varc test01 TO test09 (F8.0).
SAVE OUTFILE='c:\\temp\\mydata.sav'.
FLIP.

STRING nb1 nb2 (A1) newname(A8).
COMPUTE nbchar=LEN(RTRIM(case_lbl)).
COMPUTE nb1=SUBSTR(case_lbl,nbchar-1,1).
COMPUTE nb2=SUBSTR(case_lbl,nbchar).
DO IF nb1="0" and RANGE(nb2,"0","9").
COMPUTE newname=CONCAT(SUBSTR(case_lbl,1,nbchar-2),nb2,"r").
WRITE OUTFILE='c:\\temp\\rename.sps'
/ 'RENAME VARIABLE ('case_lbl'='newname').'.
END IF.
Execute.

GET FILE='c:\\temp\\mydata.sav'.
INCLUDE 'C:\\temp\\rename.sps'.