Моя цель - преобразовать строковую переменную «день рождения», содержащую дату, в переменную даты. Когда я запускаю свой синтаксис, я получаю это «строка, которая будет преобразована с помощью числовой функции, имеет нулевую длину». Я предполагаю, что что-то не так с пропущенными значениями.
Мой набор данных выглядит так:
birthday
2004-07-01 00:00:00
2005-09-01 00:00:00
2006-03-01 00:00:00
2007-07-01 00:00:00
Синтаксис, который я написал:
RECODE birthday (MISSING='99').
EXECUTE.
COMPUTE geboortedatum=number(birthday, YMDHMS19).
VARIABLE LABELS birthday ''.
VARIABLE LEVEL birthday (SCALE).
FORMATS birthday (MOYR8).
VARIABLE WIDTH birthday(8).
EXECUTE.
Сообщение, которое вы получаете, относится к случаям, когда birthday
пусто.
Обратите внимание, что поскольку это строковая переменная, а не число, хотя дата там отсутствует, spss не распознает ее как отсутствующие данные, если вы не определите ее так. Таким образом, ваша команда перекодирования RECODE birthday (MISSING='99').
не будет иметь никакого эффекта, вы должны изменить ее на:
RECODE birthday (''='99').
Теперь в любом случае, пусто или '99'
, функция даты не сможет обработать значение, и поэтому вы получите сообщения об этом (и значение в новом столбце будет отсутствовать).
Если вы хотите избежать получения сообщений, вместо команды recode
вы можете сделать это:
if birthday<>"" geboortedatum=number(birthday, YMDHMS19).