* Как произвести вычисления с участием макропеременных. * Размещено в SPSSX-L 24.09.1999, автор Rolf Kjoeller . /* Вопрос был в следующем: */ /* Возможно ли производить вычисления с макропеременными? */ /* Например, мне нужен макро, которому бы передавалась макропеременная год */ /* и он бы вычислял год 15 лет назад. */ *** Метод1. define !subtrct (year=!tokens(1) /minus=!tokens(1)) . preserve . set printback=on mprint=on errors = off . /******** Начало интересной части *** !let !x = !length(!concat(!blanks(!minus)," ")) !let !newyear = !length(!substr(!blanks(!year),!x)) . /******** Конец интересной части *** compute tst = !newyear . restore . exe. !enddefine . !subtrct year=1999 minus=15 . !subtrct year=1984 minus=25 . /* ВНИМАТЕЛЬНО!. !subtrct year=1999 minus=2000 . *** Метод 2. define !sub2 (year=!tokens(1) /minus=!tokens(1)) . COMPUTE tst=!year-!minus. EXE. !enddefine. !sub2 year=1999 minus=15 . !sub2 year=1984 minus=25 . /* ВНИМАТЕЛЬНО. !sub2 year=1999 minus=2000 .