2015-12-04 4 views
0

У меня есть годовые данные, которые заканчиваются в 2013 году, но я хотел бы использовать этот год и скопировать его на 2014 год, 2015 год и в конечном счете 2016 (независимо от текущего года данных, которые мы имеем). Использование тестовых данных ниже:SAS: Construct Do To Coping Last Row

DATA TEST; 
    INPUT YEAR Q1 Q2 Q3 Q4; 
    DATALINES; 
    2012 20 30 40 50 
    2013 21 29 43 47 
    ; 
RUN; 

Я бы в конечном счете хочет набор данных, который имеет:

2012 20 30 40 50 
2013 21 29 43 47 
2014 21 29 43 47 
2015 21 29 43 47 
2016 21 29 43 47 

Это просто быстрый пример, как мои данные гораздо больше и сложнее, но есть быстро DO UNTIL и OUTPUT способ скопировать эту последнюю строку столько раз, сколько необходимо и сделать YEAR+1 каждой итерации? По существу, скопируйте последнюю строку до тех пор, пока YEAR не станет последним годом в файле.

ответ

3

Вам просто нужно определить конец данных. Либо используйте параметр END =, либо если ваши данные сгруппированы, используйте LAST. флаг из обработки группы BY.

data want ; 
    set have end=eof; 
    output; 
    if eof then do year=year+1 to 2016; 
    output; 
    end; 
run; 
+0

Thank you, @Tom. Утверждения 'OUTPUT' изначально сводило меня с ума, и я не мог понять это правильно. Это то, что мне нужно! – Foxer

 Смежные вопросы

  • Нет связанных вопросов^_^