Hi all, Is there a way to reference a subset of an array in a function call? The code below is a stripped down version of what I'm working with. What I'm looking for is something like the commented out LastN assignments at the bottom, which I know don't work. The number of tokens may vary, so the hard-coded reference in the uncommented LastN won't do it. I can loop through the last N words and sequentially add one token at a time, but I thought there might be a more direct method using the OF operator such as in the "all" assignment. Any ideas? Bob data a; input string $30.; cards; adam doug bob craig pete repeat george regeorge ; run; data b; set a; if _n_=1 then do; array token {9} $15 _temporary_; ** other stuff; end; nTokens = countw(string); do _i=1 to nTokens; token[_i] = scan(string, _i); end; first = token{1}; all = catx('-', of token ); lastN = catx('-', token{2}, token{3}, token{4}) * lastN2 = catx('-', of token{2:4}); * lastN3 = catx('-', of token{2}-token{4}); ; run;
... View more