I have this syntax to achieve this result:
data have;
set want;
array xs(*) var1-var5
all = max(of xs(*));
run:
var1 var2 var3 var4 var5 all
1 . . . . 1
. 3 . . . 3
. . 2 . . 2
. . . 6 . 6
. . . . 8 8
If I have data like this, where var3 is missing, will the same syntax work for this?
var1 var2 var4 var5 all
1 . . . 1
. 3 . . 3
. . 2 . 2
. 6 . . 6
. . . 8 8
data have;
set want;
all = max(of var: );
run:
data have;
set want;
all = max(of var: );
run:
Or, if your variables names don't start with "var", you could use a variable list that only relies on the variable order in the dataset. i.e.:
data want; set have; array xs(*) var1--var5; all = max(of xs(*)); run;
Art, CEO, AnalystFinder.com
Yes.
But SAS will create an empty (all missing) variable named VAR3.
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.