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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
Решение:	 	100007493	
ПО:	 	SPSS Base 	
Версия:	 		
ОС:	 		
Тип вопроса:	 	General Operations	
Подтип вопроса:	 		
Заголовок:
Переупорядочивание переменных по алфавиту в редакторе данных. 
Описание:
Вопрос. 
Требуется изменить порядок следования переменных (колонок) в редакторе данных так, чтобы они выстроились по алфавиту. Как сделать это? 
Ответ. 
Этого можно достичь транспонированием матрицы данных, сортировкой и вторичным трансформированием, возвращающим исходную структуру.
FLIP. 
SORT CASES BY case_lbl. 
FLIP NEWNAMES=case_lbl. 
Остающаяся после этих преобразований переменная case_lbl в конце может быть удалена. 
Эта процедура может быть сделана через меню в версиях SPSS, которые поддерживают эти команды. В последних версиях, например, можно рекомендовать следующую последовательность действий:
Во-первых, транспонируем файл: 
1. Выберите меню Data>Transpose. 
2. Выберите в списке все ваши переменные и внесите их в список Variables. 
3. Нажмите "Ok". 
Теперь отсортируйте файл: 
1. Выберите меню Data>Sort Cases... 
2. Выберите переменную "case_lbl" (она будет создана в ходе транспонирования) и внесите её в список "sort by...". 
3. Выберите "Ascending". 
4. Нажмите "Ok". 
Наконец, транспонируйте файл обратно: 
1. Выберите Data>Transpose... 
2. Выберите все переменные, ЗА ИСКЛЮЧЕНИЕМ "case_lbl" и переместите их в список "Variables". 
3. Выберите переменную "case_lbl" и переместите её в поле "Name Variable". 
4. Нажмите "Ok". 
Последовательность переменных изменена. Как и в случае использования синтаксиса, теперь переменную "case_lbl" можно удалить. 
Важно заметить, что это описан метод решения задачи "в лоб". Он эффективен лишь для файлов, состоящих только из числовых переменных, без меток переменных и значений, поскольку 
* при транспонировании любая строковая переменная в файле данных будет потеряна,
* так же как форматы и метки ваших переменных.

Несколько дополнительных шагов позволят сохранить содержимое строковых переменных, а также метки переменных и значений. 
Вот пример файла, который может включать любое количество переменных, метки переменных и значений и одну строковую переменную: 
*Синтаксис создаёт числовую переменную с содержимым строковой переменной в качестве меток значений. 
AUTORECODE VARS=stringvar /INTO numvar/PRINT. 
*Затем мы скопируем файл для сохранения метаданных (описаний переменных) для последующего использования.
SAVE OUTFILE='format.sav'. 
*Теперь мы транспонируем файл дважды, как это было описано в примере выше. 
FLIP. 
SORT CASES BY case_lbl. 
FLIP NEWNAMES=case_lbl. 
*Объединение файла с самим собой позволяет нам убрать ненужные переменные.
MATCH FILES FILE=*/DROP stringvar case_lbl. 
*Сейчас файл не содержит меток (даже тех, что должны сказать, каковы были значения у строковой переменной "stringvar") или информации о форматах. Однако, мы восстановим всю эту информацию из резервной копии файла, которую сделали ранее.
APPLY DICTIONARY FROM='format.sav'. 
EXE. 
В примере выше... 
*..."stringvar" - имя строковой переменной. Вам нужно указывать его каждый раз при вызове очередной команды AUTORECODE)... 
*..."numvar" - новая числовая переменная с закодированными строковыми значениями... 
*..."case_lbl" - идентификационная переменная, созданная в ходе процедуры FLIP... 
*... а "format" - резервная копия вашего файла данных со строковой переменной, конвертированной в числовую для сохранения информации о метках и форматах. 
Так же как и для простейшего случая только лишь с числовыми переменными без специфических метаданных, можно пользоваться меню для всех операций.
Во-первых, перекодируем строковые переменные: 
1. Выберите меню  Transform->Automatic Recode. 
2. Укажите строковые переменные и внесите их в список "Variable->New Name". 
3. Задайте для них новые имена (кнопка "New Name"). 
4. Нажмите "Ok". 
Сохраните получившийся файл. 
Теперь - транспонируйте файл: 
1. Выберите меню Data->Transpose. 
2. Выберите все переменные и перенесите их в список Variables. 
3. Нажмите "Ok". 
Теперь отсортируйте файл: 
1. Выберите Data->Sort Cases... 
2. Выберите переменную "case_lbl" (она создаётся при транспонировании) и перенесите её в список "sort by...". 
3. Выберите "Ascending". 
4. Нажмите "Ok". 
Теперь транспонируйте файл обратно: 
1. Выберите меню Data->Transpose... 
2. Выберите все переменные, ЗА ИСКЛЮЧЕНИЕМ "case_lbl" и перенесите их в список "Variables". 
3. Выберите переменную "case_lbl" и перенесите её в поле "Name Variable". 
4. Нажмите "Ok". 
Переменные переупорядочены. Теперь можно удалить переменную "case_lbl" и строковые переменные, если желаете. 
В заключение, выберите меню Data->Apply Data Dictionary и укажите файл, который сохранили ранее. Это восстановит ваши метки переменных, значений и форматы. 

Заключительный комментарий. В SPSS для Windows существует опция, позволяющая сортировать списки переменных в диалоговых окнах в алфавитном порядке по имени переменных (а в поздних версиях - и по меткам переменных). Если цель ваших преобразований - просто повлиять на последовательность отображения переменных в списках, проще использовать данную опцию, никак не изменяя файл.