* ВОПРОС: мне требуется случайным образом разделить файл на 2 части. Сделать это надо n раз, каждый раз разделяя на 2 части исходный файл. При этом я хочу сохранить результаты всех n разделений в одном и том же файле данных. * Ответ: Ray. * www.spsstools.net *. SET MPRINT=no. * Создадим пример данных для иллюстрации. NEW file. input program. loop id_org=1 to 10. leave id_org. COMPUTE #nb_ees=4+TRUNC(UNIFORM(10)). loop id_ee=1 to #nb_ees. + compute dept=1+TRUNC(uniform(5)). + end case. end loop. end loop. end file. end input program. execute. SAVE OUTFILE='c:\\temp\\temp.sav'. * Определим макрос. *///////////////////////////////. DEFINE !do_job (n_samp=!TOKENS(1)) !DO !cnt=1 !TO !n_samp GET FILE='c:\\temp\\temp.sav'. COMPUTE randval = UNIFORM(1). SORT CASES BY id_org randval. COMPUTE seqnum = $casenum. COMPUTE choose1 = MOD(seqnum,2). * В переменной samplen будет номер варианта разделения. COMPUTE splitn=!cnt. * Условие IF добавлено А.Б. для сохраниения результатов всех разделений в один файл. !IF (!cnt=1) !THEN SAVE OUTFILE='c:\\temp\\data.sav'. !ELSE ADD FILES FILE=* /FILE='c:\\temp\\data.sav'. SAVE OUTFILE='c:\\temp\\data.sav'. !IFEND. !DOEND. !ENDDEFINE. *///////////////////////////////. SET MPRINT=yes. * Вызовем макрос. !do_job n_samp=3. * Укажите в качестве значения n_samp нужное число вариантов разделений.