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.
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.