Я думаю, что на этот вопрос уже дан ответ, но если вы разрабатываете .NET 2.0 или что-то выигрывает в .NET, вы неизбежно столкнетесь с множеством проблем, связанных с тем, как некоторые части фреймворка обертывают win32, mfc и вас ». Мне нужно разобраться в этом, чтобы заставить вещи работать так, как задумано.
Вы можете использовать nobs и точку , чтобы обработать его в обратном направлении без необходимости выполнять какие-либо промежуточные шаги. Вот пример:
data backwards;
do k= nobs to 1 by -1;
set sashelp.class nobs = nobs point=k;
output;
end;
stop;
run;
proc print data=sashelp.class;run;
proc print data=backwards;run;
См. Стр. 2 из этого pdf для всех пикантных деталей.
Вы, конечно, можете изменить свои данные в обратном порядке, а затем обрабатывать сверху вниз. Добавьте к набору данных переменную, которая действует как индекс ... затем отсортируйте набор данных по убыванию этой переменной.
data work.myData ;
set work.myData ;
indx = _n_ ;
run ;
proc sort data=work.myData ;
by descending indx ;
run ;