Как уже упоминалось в комментариях, это действительно зависит от того, как вы собираетесь использовать свои данные. Тем не менее, один из подходов состоит в том, чтобы присваивать значения отсутствующим в вашей системе для повышения гибкости. Я приведу пример на основе вашего описания.
Q1) Пожалуйста, опишите ваши условия проживания. а. Я живу один. б. Я живу с семьей / соседями по комнате и являюсь главой семьи. c. Я живу с семьей / соседями по комнате, но не являюсь главой семьи.
[Если Q1 = a, то пропустите] Q2) С какими другими членами, кроме вас, вы живете? а. 1 б. 2 c. 3 д. 4 или более
Q3) Кто-нибудь из этих [Q2 count] членов не является соседями по комнате? а. Да б. Нет
Поскольку Q2 - это число людей в семье (исключая личность), вы можете перекодировать тех, кто живет самостоятельно, чтобы фактически ответить на вопрос.
RECODE Q2 (SYSMIS=0).
EXE .
Или, если возникла необходимость дифференцировать (либо потому, что не все SYSMIS
должны быть 0, либо потому что вы хотите отслеживать, почему они равны 0) В этом случае вы можете при необходимости включить / выключить эти пропущенные значения.
IF (Q1='a') Q2=0.001 .
EXE .
ADD VALUE LABELS Q2 .001 'Lives Alone' .
MISSING VALUES Q2 (.001) .
Для Q3, это действительно больше N / A. В этом случае вы можете выбрать произвольное значение (-1, 99 и т. Д. c) для целей отслеживания и всегда сохранять эти пропущенные значения установленными.
If (Q1='a' AND Q3=$SYSMIS) Q3=99 .
EXE .
ADD VALUE LABELS Q3 99 'N/A, lives alone' .
MISSING VALUES Q3 (99) .