2015-08-14 3 views
-3
data have; 
infile cards missover; 
input scrssn :$11. year FIPS :$5.; 
cards; 
111-22-3333 2008 
111-22-3333 2009 
111-22-3333 2010 09990 
111-22-3333 2011 
111-22-3333 2012 08880 
111-22-3333 2013 
111-22-3333 2014 
333-44-5555 2009 
333-44-5555 2010 67897 
333-44-5555 2011 
333-44-5555 2012 56789 
333-44-5555 2013 
333-44-5555 2014 67899 
333-44-5555 2015 
333-44-5555 2016 
333-44-5555 2017 
333-44-5555 2018 
; 
run; 

я хотел бы данныеSAS условно заполнение строки

111-22-3333 2008 
111-22-3333 2009 
111-22-3333 2010 09990 
111-22-3333 2011 09990 
111-22-3333 2012 08880 
111-22-3333 2013 
111-22-3333 2014 
333-44-5555 2009 
333-44-5555 2010 67897 
333-44-5555 2011 67897 
333-44-5555 2012 56789 
333-44-5555 2013 56789 
333-44-5555 2014 67899 
333-44-5555 2015 
333-44-5555 2016 
333-44-5555 2017 
333-44-5555 2018 

Для каждого scrssn, хотелось бы, чтобы заполнить последующие FIPS с предыдущими FIPS, но остановиться на последней строке с имеющимися FIPS

Спасибо вам большое!

+1

Предпочтительно, если вы показываете код, который вы уже написали, SO не является службой записи кода. Посмотрите на инструкцию 'keep',' missing' и 'first.' и' last.' путем групповой обработки. Поймите, написав код, если он не работает, тогда опубликуйте, что вы сделали, и мы поможем – Longfish

+0

Можете ли вы опубликовать код процесса или хотите сделать это во входном datastep? – stat

ответ

0

Попробуйте это решение.

Proc Sort Data=have Out=have_sorted ; 
By scrssn; 
Run; 

Data test; 
set have_sorted; 
retain R_var ; 
by scrssn; 
if FIPS then r_var=Fips; 
if last.scrssn then R_var=''; 
FIPS=R_var; 
drop R_var; 
run; 

Использование сохранить, чтобы сохранить значение FIPS в новой переменной, а затем передать его в ФИПС. Если это последняя группа, сделайте сохраненную переменную пустой (отсутствующей).

+0

Привет, Йонас, большое спасибо! У меня есть еще один вопрос, потому что если бы я только хотел заполнить пробелы между ними, что, если для последних нескольких наблюдений есть несколько строк, тогда я не могу просто просто сделать все последнее наблюдение пустым. Еще раз спасибо! –

+0

@ Даниэль Ло Я не понимаю ваш вопрос. Некоторое разъяснение, пожалуйста, или даже лучше, опубликуйте его как новый вопрос. – Jonas

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