Стандартизация гетерогенных данных возраста в SPSS или Excel

Я пытаюсь стандартизировать столбец Возрастных данных (т. Е. В старые годы / месяцы) с использованием синтаксиса SPSS / SPSS / Excel. Моя интуиция заключается в том, чтобы использовать серию циклов DO IF, т.е.:

DO IF CHAR.INDEX(Age, "y")>1... for years DO IF CHAR.INDEX(Age, "m")>1... for months DO IF CHAR.INDEX(Age, "d")>1... for days 

и запрограммируйте ссылку на программу число (ы), непосредственно предшествующую строке, в виде количества лет / месяцев / дней и добавьте ее к общей сумме в новой переменной, которая может быть в днях (наименьшая единица), которая впоследствии может быть преобразована в годы ,

Например, для ячейки «3 года 5 мес»: добавьте 3 * 365 + 5 * 30,5 = 1248 дней к новой переменной (что-то вроде «DaysOld»).

Примеры содержимого ячеек (числа без каких-либо строк, которые считаются годами):

 2 5 months 11 days 1.7 13 yr 22 yrs 13 months 10 mo 6/19/2016 3y10m 10m 12y 3.5 years 3 years 11 mos 1 year 10 months 1 year, two months 20 Y 13 y/o 3 years in 2014 

Следующий синтаксис разрешит многие случаи, но определенно не все из них (например, «1.7» или «3 года в 2014 году»). Вам нужно будет больше работать над этим, но это должно заставить вас начать хорошо …

Сначала я воссоздаю ваши образцы данных для работы с:

 data list list/age (a30). begin data "2" "5 months" "11 days" "1.7" "13 yr" "22 yrs" "13 Months" "10 mo" "6/19/2016" "3y10m" "10m" "12y" "3.5 years" "3 YEARS" "11 mos" "1 year 10 months" "1 year, two months" "20 Y" "13 y/o" "3 years in 2014" end data. 

Теперь работать:

 * some necessary definitions. string ageCleaned (a30) chr (a1) nm dmy (a5). compute ageCleaned="". * my first step is to create a "cleaned" age variable (it's possible to manage without this variable but using this is better for debugging and improving the method). * in the `ageCleaned` variable I only keep digits, periods (for decimal point) and the characters "d", "m", "y". do if CHAR.INDEX(lower(age),'ymd',1)>0. loop #chrN=1 to char.length(age). compute chr=lower(char.substr(age,#chrN,1)). if CHAR.INDEX(chr,'0123456789ymd.',1)>0 ageCleaned=concat(rtrim(ageCleaned),chr). end loop. end if. * the following line accounts for the word "days" which in the `ageCleaned` variable has turned into the characters "dy". compute ageCleaned=replace(ageCleaned,"dy","d"). exe. * now I can work through the `ageCleaned` variable, accumulating digits until I meet a character, then assigning the accumulated number to the right variable according to that character ("d", "m" or "y"). compute nm="". loop #chrN=1 to char.length(ageCleaned). compute chr=char.substr(ageCleaned,#chrN,1). do if CHAR.INDEX(chr,'0123456789.',1)>0. compute nm=concat(rtrim(nm),chr). else. if chr="y" y=nm. if chr="m" m=nm. if chr="d" d=nm. compute nm="". end if. end loop. exe. * we now have the numbers in string format, so after turning them into numbers they are ready for use in calculations. alter type dmy (f8.2). compute DaysOld=sum(365*y, 30.5*m, d). 
  • Эффективный способ преобразования Да / Нет в 1/0 в Excel или SPSS
  • Добавьте серию данных, чтобы выделить случаи на графике окна (Excel, SPSS или R)
  • Запуск SPSS-синтаксиса от excel с помощью vba
  • Как массировать копии строк в зависимости от счетчика в SPSS или Excel
  • Можно ли автоматически восстанавливать поврежденные книги Excel?
  • spss подсчитывает все ячейки, которые не являются пустыми
  • SPSS: набор данных фильтра по конкретному появлению последовательности
  • Эффективно записывайте данные SPSS в Excel с помощью Python
  • Соответствующие способы показать оценки по отношению к процентилям населения
  • Экспортировать вывод SPSS в значимом формате (например, csv, tab)?
  • SPSS Python записывает список переменных для Excel
  • Interesting Posts

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

    get_squared_range в список списков из excel

    Напротив инструкции LIKE

    Динамическое изменение имени файла – ComboBox Excel Print

    Преобразование datatable в excel 2007 (.xlsx)

    Установка table_array в VLOOKUP в VBA excel

    VBA Excel выполняет макрос во всех подпапках, а не только в отдельных папках

    Расширение кнопок jqery datatables не работает (экспорт в PDF, Excel и т. д.)

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

    проверка диапазона excel, чтобы убедиться, что он пуст

    Выделение значений ячейки из Excel в Word (ошибка выполнения 429)

    Макрос добавление строки в сводную диаграмму / исходную позицию в сводной диаграмме

    Как я могу проанализировать файл excel в zip-файле?

    Данные свертываются вместе с транспозицией

    Защищенный лист в Excel: разрешает любому пользователю редактировать диапазон, но не сможет выбрать что-либо еще

    Давайте будем гением компьютера.