Извлечение удаленных наблюдений в SAS

#sas

#sas

Вопрос:

Сегодня мы обсуждали параметр nobs= в SAS (см. Ниже), и возник вопрос — как вы восстанавливаете / извлекаете удаленные наблюдения?

 data test;
x=1;
output;
x=2;
output;
run;

proc sql;
    delete from test where x=2;
quit;

data _null_;
    set test nobs=n;
    put n=; /* gotcha */
run;
  

Комментарии:

1. Похоже, вы обнаружили ошибку. Я заменил вашу процедуру SQL на процедуру, которая воссоздает набор данных (CREATE TABLE TEST КАК SELECT TEST FROM TEST, ГДЕ X ~= 2), и результат ввода строки N =; был равен 1, как и ожидалось.

2. @RWill: не ошибка, просто часть странности SAS. См. www2.sas.com/proceedings/sugi26/p095-26.pdf

3. имеет смысл — вы не захотите перестраивать большую таблицу без необходимости. Это показывает, что на значения метаданных нельзя полагаться. Но первоначальный вопрос остается!

Ответ №1:

Несмотря на то, что записи «помечены для удаления», что позволяет предположить, что может существовать способ «снять пометку для удаления», в настоящее время нет возможности восстановить эти записи. Это очень плохо, поскольку кажется, что это может быть полезно в некоторых случаях.