2017-01-11 3 views
1

У меня есть строковая переменная с большим количеством круглых скобок и других знаков препинания, например. _LSC Долгосрочная лицензионная работа. Как я могу легко преобразовать его в числовую переменную, если у меня уже есть указанный список кодов? т. е. я не хочу, чтобы он автоматически перекодировал все, потому что он использует неправильные значения для меток.SPSS преобразование строки в числовую переменную

ответ

0

Создайте набор данных с двумя переменными: строка, содержащая текущее грязное имя и числовую переменную, содержащую новый код. Затем, как с исходным набором данных, так и с поиском, отсортированным по строке, сделайте MATCH FILES с указанием соответствия таблицы (или используйте Data> Merge Files> Add Variables).

+0

Я продолжаю получать ошибки, когда пытаюсь ввести метки значений числовой переменной в: метки значений. Команда (ADD) VALUE LABELS включала символ, отличный от значения, в котором ожидалось значение (числовое или строковое). Для совместимости с предыдущими системами значение в скобках было бы приемлемым. Все значки значений до следующего коса будут игнорироваться. – Rachael

+0

@Rachael, это отдельная проблема, пожалуйста, разместите ее в новом вопросе. В этом вопросе отправьте образец своих данных и соответствующий синтаксис. –

0

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

когда вы установить это, сопоставьте файлы, как это:

get file="filepath\Your_Value_Table.sav". 
sort cases by YourOriginalVarName. 
dataset name ValTab. 
get file="filepath\Your_Original_File.sav". 
sort cases by YourOriginalVarName. 
match files /file=* /table=ValTab /by YourOriginalVarName. 
exe. 

На данный момент исходный файл будет содержать новую переменную, которая имеет коды, которые вы хотели.

0

В общем согласен с решением, предоставляемым другими пользователями. Тем не менее, я хотел бы предложить дополнительный шаг, который мог бы улучшить ваш поисковый файл (см. Ответ eli-k и JKP).

Суть в том, что ваша строковая переменная с большим количеством круглых скобок и других знаков препинания, вероятно, также имеет разные способы написать одно и то же. Например: _LSC долгов лицензированы работы LSC долги лицензированы работа _LSC долгов Лицензионной работы и т.д. Вы можете создать поисковую-таблицу с тремя переменными: уникальные значения исходной переменной строки, очищенной вверх версия, что переменной и, наконец, числовое значение, которое вы хотите прикрепить. Преимущество очищенной версии заключается в том, что вы можете легче идентифицировать одно и то же значение, хотя оно написано по-разному.

Вы можете очистить с помощью нескольких функций:

string CleanedUpVersion (A40). 
compute CleanedUpVersion = REPLACE(RTIM(LTRIM(UPCASE(YourOriginalVarName))),'_',''). 
execute. 

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

Смежные вопросы