***********************************************************************; * Version 3.1 July 20, 1994 *; ***********************************************************************; START _UNSCAN_(_BIG_, _LITTLE_ ); *___________________________________________________________________* This internal subroutine scans two vectors (_BIG_ and _LITTLE_) and constructs a row vector (_INDEX_) which indexes the position of each element of _BIG_ which is not in _LITTLE_. For every element in _LITTLE_ which is not in _BIG_, a missing value (.) is appended to _INDEX_ Inputs _BIG_ _LITTLE_ Output _INDEX_ (via RETURN) *___________________________________________________________________*; _LINDX1_ = J( 1 , NCOL( _LITTLE_ ) , 0 ); _INDEX_ = J( 1 , 1 , . ); DO _B1_ = 1 TO NCOL( _BIG_ ); _FOUND1_ = 0; DO _L1_ = 1 TO NCOL( _LITTLE_ ) WHILE ( _FOUND1_ = 0 ); IF ( _BIG_(| 1 , _B1_ |) = _LITTLE_(| 1 , _L1_ |) ) THEN DO; _FOUND1_ = 1; _LINDX1_ (| 1 , _L1_ |) = 1; END; END; IF _FOUND1_ = 0 THEN _INDEX_ = _INDEX_ || _B1_; END; _B1_ = NCOL( _INDEX_ ); IF _B1_ > 1 THEN _INDEX_ = _INDEX_(| 1 , 2 : _B1_ |); ELSE FREE _INDEX_; MISSING =SUM( _LINDX1_ = 0 ); IF MISSING>0 THEN _INDEX_= _INDEX_ || J(1,MISSING, . ); RETURN( _INDEX_ ); FINISH _UNSCAN_ ;