I have a dataset that is grouped by category variables in the source data. For example:
Bar | Foo1
| Foo2
| Foo3
Bar2 | Foo4
| Foo5
| Foo6
After I import the source data, the above would result in the first Variable (Parent) being populated on Record 1 but not #2 and #3. I would like to copy the parent variable's value into record 2 and 3. Thus my output would look more like this:
Bar | Foo1
Bar | Foo2
Bar | Foo3
Bar2 | Foo4
Bar2 | Foo5
Bar2 | Foo6
I tried using a "LAG" function, but it doesn't seem to be working. Here is my code:
if PARENT ~= "" then do;
PARENT = PARENT;
end;
else do;
PARENT = LAG(PARENT);
end;
Another way of doing it is to add a dummy variable, then trick SAS by using Update statement.
The lag function returns the last value that was passed to it when it was called, not the value that was last output.
You could do something like the following:
You would need to set the length of last_parent to the same length as parent to make sure nothing gets cut off.
You can retain the non-missing value and apply it to any missing values, e.g.