* Найти 5 наибольших значений в пределах одного наблюдения.
* Автор решения: David Nichols, размещено в SPSSL-X 29.3.2000
* Результаты найдёте в файле 'c:\\temp\\tmp.sav' - примеч. перев.
set mxloops=100.
data list free / x1 to x10.
begin data.
-13 -54 -23 -54 -25 -12 -52 3 51 23
15 41 23 15 42 31 23 12 15 12
51 43 51 36 12 53 6 12 53 12
63 51 23 51 73 51 35 12 35 35
end data.
matrix.
get x /variables=x1 to x10.
compute out=make(nrow(x),5,0).
loop i=1 to 5.
compute out(:,i)=rmax(x).
loop j=1 to nrow(x).
loop k=1 to ncol(x).
do if x(j,k)=out(j,i).
compute x(j,k)=-1E+100.
break.
end if.
end loop.
end loop.
end loop.
save out /outfile='c:\\temp\\tmp.sav'.
end matrix.