Перейти к основному содержимому

Правила формирования имен переменных (колонок) в итоговом массиве

· 4 мин. чтения

Достаточно часто встречаются случаи, когда стандартные имена переменных в выгруженном массиве по каким-то причинам не подходят. Например, заказчик хочет, чтобы переменные совпадали с вопросами анкеты, предоставленной для программирования, или с его макетом массива.

Что для этого требуется?

Понять принцип формирования имён переменных и запомнить доступные в SURVEYSTUDIO подстановки кодов ответов и строк таблицы.

Для вопроса с одним ответом в массив добавляется одна колонка. С несколькими - столько колонок, сколько всего вариантов ответа в вопросе. С уважением, Капитан Очевидность :)

То же самое для табличных вопросов: сколько есть строк - столько колонок. А если таблица с несколькими ответами - для каждой строки добавляются колонки для всех вариантов ответа. Ну а если у ответов или строк есть дополнительные числовые и текстовые поля - ещё колонки в массиве.

Если выгрузить макет массива со стандартными именами, то он выглядит примерно так:

Здесь видно, что в Q1 и Q2 предполагается один ответ. В Q3 - тоже один, но у ответа с кодом 3 есть числовое поле. В Q4 - пять ответов, это либо вопрос с множественным выбором, либо табличный, и у ответа или строки с кодом 4 - текстовое поле.

И вот, допустим, в этом массиве надо букву Q, заменить на S.

note

Имена переменных не влияют на сохранённые интервью и их можно менять в любой момент времени.

Где их указывать?

В свойствах вопроса, справа от его номера, есть поля для имён переменных:

  • Второе поле - переменная вопроса,
  • третье - переменная числового поля,
  • четвёртое - текстового поля.

Что будет в массиве, если во втором поле вопроса с несколькими ответами написать S35? Вопрос с подвохом :) Массива не будет, потому что колонку каждого ответа система попытается назвать S35, S35, S35…, что недопустимо. Тут-то и нужны подстановки.

Доступные подстановки

  • {1} - код варианта ответа или его порядковый номер, если включён режим категориального кодирования ответов,
  • {2} - код строки таблицы,
  • {3} - код или псевдоним варианта ответа, для которого создаётся вопрос - если он находится внутри цикла,
  • {0} - номер вопроса SURVEYSTUDIO (для экзотических случаев).

Если перевести на русский язык, то, например {2}, буквально означает: "подставить на это самое место код строки таблицы".

Примеры

Если вопрос предполагает один ответ, то во втором поле нужно просто указать желаемое имя. Для Q1 массива выше:

А если у одного из ответов есть числовое поле (в Q3):

Для вопроса с множественным выбором, и у ответов которого есть текстовые поля (в Q4):

В итоге получится:

Хочу то же картинкой

На примере некого Q10 показано, какие подстановки к имени A25 следует добавить в различных случаях: https://coggle.it/diagram/YEiHIdWHwvE_MPx8/t/q10/0a675152e0204e4b63120ff98c7d41eff87e41a299c53a4a270a9be7ce6ef5b9

А попроще ничего нет?

В несложной анкете подстановки {1} и {2} можно автоматически проставлять этим скриптом. В таком случае имена переменных нужно указать только во втором поле вопроса.

О чём ещё стоит знать?

Для необычных случаев имена переменных можно прописать у ответа или строки таблицы:

Как видно, здесь полей больше, чем у вопроса.

  • Второе поле - псевдоним (если в массиве вместо кода из первого поля нужно что-то другое),
  • третье - переменная ответа/строки,
  • четвёртое - переменная числового поля,
  • пятое - текстового поля.

Важные правила

  • Имя каждой переменной должно быть уникальным; дублирование недопустимо. Регистр значения не имеет: VarName, varname, VARNAME – одно и то же имя.
  • Имя может содержать как английские, так и русские буквы, цифры и символы _.@#$ Символ «минус» (-) автоматически заменяется подчёркиванием. Пробелы недопустимы.
  • Максимальная длина имени – 64 байта (64 английские буквы или 32 русские).
  • Переменная должна начинаться с буквы и не должна заканчиваться точкой (.)
  • В качестве имени нельзя использовать зарезервированные SPSS слова (ALL, AND, BY, EQ, GE, GT, LE, LT, NE, NOT, OR, TO, WITH), а также стандартные имена переменных SURVEYSTUDIO, которые можно посмотреть здесь.

Их несоблюдение приведёт к ошибкам и невозможности выгрузить массив.