Невозможно присвоить отсутствующие значения строковой переменной в SPSS с помощью графического интерфейса.

Я изо всех сил пытаюсь перекодировать недостающие значения в SPSS с помощью графического пользовательского интерфейса. Я могу легко перекодировать числовые переменные, используя графический интерфейс и диалоговое окно, показанное ниже:

введите описание изображения здесь

Но когда я ввожу строковую переменную в то же диалоговое окно, опция определения нового значения как «Отсутствует система» недоступна:

введите описание изображения здесь

Неужто такую ​​простую проблему можно решить без использования редактора синтаксиса?

Я использую SPSS версии 19


person Rene Bern    schedule 18.12.2012    source источник
comment
Это действительно очень плохая идея делать такие вещи без использования редактора синтаксиса. Что вы собираетесь сказать своему клиенту / учителю, если он сомневается в ваших результатах? Что, если вы случайно испортите свои данные, вы снова выполните все щелчки мышью? Простое использование Paste вместо Ok и сохранение всего синтаксиса, который вы используете, вероятно, избавят вас от многих проблем.   -  person RubenGeert    schedule 18.12.2012


Ответы (5)


Это потому, что системные пропущенные значения определены только для числовых переменных. Вы можете определить пользовательские пропущенные значения для строк. Например, перекодируйте на какое-то неиспользуемое строковое значение, такое как "99999", а затем установите значение "99999" как пользовательское пропущенное.

Справочник по синтаксису команд IBM SPSS Statistics 19, стр. 55:

Системные пропущенные значения не могут быть созданы для строковых переменных, поскольку любой символ является допустимым строковым значением.

person djhurio    schedule 18.12.2012
comment
Это сделало это :) Вы знаете, могу ли я назначить user-missing сразу всем строковым переменным или мне придется делать это по одной? (все еще предполагая, что я использую только графический интерфейс). - person Rene Bern; 18.12.2012
comment
Используйте синтаксис для такой задачи @ReneBern, простую команду типа missing values all ("missing string") для изменения всех переменных в файле или missing values V1 to V3 ("missing string") для указания переменных в определенном диапазоне в наборе данных. - person Andy W; 18.12.2012

Пытаться...

RECODE OldStringVar ("Missing" = "").

Or...

DO IF OldStringVar = "".
RECODE OldStringVar (ELSE = COPY) INTO NewStringVar.
END IF.

Или варианты этого подхода.

person J. Magdanz    schedule 07.12.2016

У меня такая же проблема. Я нашел ответ в этом уроке:

http://libguides.library.kent.edu/content_mobile.php?pid=481510&sid=4120229

Под "автоматическим перекодированием"

«Фактически, это единственный способ заставить SPSS распознавать отсутствующие значения для строковых переменных; в противном случае SPSS считает пустые строки действительными значениями»

Для получения инструкций перейдите по указанной выше ссылке. Спасибо

person Mohamed Amer    schedule 26.10.2014
comment
Ссылку дать хорошо, но лучше хотя бы кратко изложить шаги. - person woot; 27.10.2014

В коде это можно сделать. Сделайте следующее (используя поле адреса в качестве примера): - Создайте новую временную переменную, используя «автоматическое перекодирование», при котором недостающие значения в старой переменной будут легко идентифицированы. Перейдите в «Преобразовать \ Автоматическое перекодирование», дважды щелкните текстовую переменную (адрес), введите новое имя (Addr_Temp) и нажмите «Добавить новое имя». Отметьте поле «Считать пустые строковые значения пропущенными пользователем» и нажмите ОК. В коде:

AUTORECODE VARIABLES=Address 
    /INTO Addr_Temp
    /BLANK=MISSING
    /PRINT.

** Скорее всего, ОТСУТСТВИЕ будет последним (самым высоким) значением, я не уверен, но подтвердить это несложно. Теперь предположим, что это значение равно 94, что означает, что в ваших данных есть 93 абсолютно разных действительных значения для адреса, а четвертое - пустое (представьте данные о том, где родились коренные жители, в городе с 93 больницами. быть 93 разными адресами больниц, а некоторые - пустыми для иностранных граждан). Обратите внимание на специальные символы, возможно, последний код не будет пустым полем ... Сначала проверьте список перекодирования в окне вывода. - Кодифицируйте отсутствующее значение как известный и необычный код, например 9999FFFF (или другой невозможный адрес в нашем примере адресов), как показано ниже:

RECODE Addr_Temp (94='9999FFFF') INTO Address.
EXECUTE.

К сожалению, это не будет работать в графическом интерфейсе, только синтаксис, по крайней мере, в моей версии SPSS (вы можете попробовать в своей, просто выполните обычное перекодирование). Он не принял существующую переменную

Теперь у вас есть значение «9999FFFF» в текстовом поле вместо пустого значения, которое можно использовать по желанию (включая ручное перекодирование). Просто не забудьте перекодировать эту переменную на данные, отсутствующие при создании последней переменной, или на переменную с автоматической перекодировкой.

person Marcus    schedule 14.03.2016

Первый открытый редактор синтаксиса

ОТСУТСТВУЮЩИЕ ЗНАЧЕНИЯ NAME_VAR1, NAME_VAR2 (""). ВЫПОЛНЯТЬ

Теперь вы можете легко перекодировать строковые переменные с помощью графического интерфейса.

ВАЖНЫЙ!!! только с переменными длиной восемь или меньше

person Cecilius    schedule 14.02.2020