初学者,我希望这不是一个模糊的问题。
背景:我有一张表与Inventor ID相关联的表格。这代表了发明人注册专利的所有年份。
PROC SQL;
CREATE TABLE Inv_Year AS
SELECT a.InventorID, a.Year
FROM Inv_Year_Pat AS a;
QUIT;
所以行看起来像这样
InventorID | Year
1 1989
2 2002
3 1990
3 1992
3 1994
任务:发明人在1990年,1992年和1994年发明了第3号。我需要填写发明人活跃年份之间的任何一年。导致这......
InventorID | Year
1 1989
2 2002
3 1990
3 1991
3 1992
3 1993
3 1994
如何在SAS中解决此问题?
答案 0 :(得分:2)
data want ; set have ; by InventorID ; prevYear = lag(Year) ; if first.InventorID then prevYear = . ; /* If not first row per InventorID and difference is > 1 year */ if not missing(prevYear) and sum(Year,-prevYear) > 1 then do ; /* Store current Year */ thisYear = Year ; /* Insert missing years */ do Year = prevYear + 1 to thisYear ; output ; end ; end ; else output ; drop prevYear thisYear ; run ;