Hello guys, I have a table containning different names for the same registry. The error is due to the name variable being pulled from different databases and is simply a different spelling since the ID is definitely the same. I would like to correct this error by simply substituting one of the versions of the name by the other. I came up with the following table to exemplify my problem: DATA HAVE;
INFILE DATALINES DLM=' ';
LENGTH NAME $ 20;
INPUT NAME $ ID;
DATALINES;
ALEX 123456
ALEX 123456
ALEXANDER 123456
;
RUN; To try and correct it I wanted to use the lag function to check if the ID from the current row is the same from the row above but with a different name and, when that is the case, substitute the name in the current row with the name on the previous row. I came up with the following code. DATA WANT;
SET HAVE;
IF ID = LAG(ID)
AND NAME NE LAG(NAME)
THEN NAME = LAG(NAME);
RUN; But this code gives me a blank when the result I was expecting would be Alex. I was able to determine that the problem is in the IF statement, because using only the the lag(name) as a new variable, without the if statement, it works fine. I am at a loss of what the problem might be and would appreciate any help or pointers. Thanks in advance for the help Alex (Alexander : ) )
... View more