Прочесть имена и метки переменных и значений из ASCII-формата
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 59 60 61 62 63 64 65 66 | * Метки значений находятся в файле ASCII. Требуется прочесть их и применить к файлу данных. * Автор: Raynald Levesque, rlevesque@videotron.ca. NEW FILE. INPUT PROGRAM. * Синтаксис предполагает наличие пробела в колонке 2 между значением и его меткой, а также наличие имён переменных. DATA LIST FIXED /KIND 2-2(A). DO IF (kind EQ ' '). REREAD. DATA LIST /v_value 1-1(F) lab1 3-20(A). END CASE. ELSE. REREAD. DATA LIST /v_name 1-8(A). LEAVE v_name. END CASE. END IF. END INPUT PROGRAM. * Это содержимое файла, содержащего метки значений. BEGIN DATA var1 1 малый 2 большой var2 1 сильный 2 слабый 3 з/о var3 1 часто 2 не очень часто 4 раз в неделю 6 раз в месяц END DATA. LIST. SELECT IF ~MISSING(v_value). STRING q1(A1). COMPUTE q1='"'. SORT CASES BY v_name. MATCH FILES FILE=* /BY=v_name /FIRST=first. * ------- Запишем в файл синтаксиса команды применения меток значений. WRITE OUTFILE 'c:\\temp\\temp1.sps' /"ADD VALUE LABELS " v_name " " v_value " " q1 lab1 q1".". EXE. *Допустим, это ваш файл данных (без меток); прочтём его. NEW FILE. DATA LIST LIST /var1 var2 var3. BEGIN DATA 1 1 1 2 2 2 1 3 4 2 1 6 1 3 4 END DATA. LIST. * Теперь присвоим метки. INCLUDE 'c:\\temp\\temp1.sps'. * Вот и всё!. |