Решение: 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 существует опция, позволяющая сортировать списки переменных в диалоговых окнах в алфавитном порядке по имени переменных (а в поздних версиях - и по меткам переменных). Если цель ваших преобразований - просто повлиять на последовательность отображения переменных в списках, проще использовать данную опцию, никак не изменяя файл.