Prev: sas questions
Next: Query regarding SAS Macros & ODS
From: Amar Mundankar on 17 Apr 2010 01:45 On Apr 16, 10:23 am, Amar Mundankar <amarmundan...(a)gmail.com> wrote: > Hi all, > I have 3 input datasets. > > data ONE; > a_access = 'M'; > Access = 'K'; > z = 2; > y = 6; > b_dio_access ='C'; > run; > data two; > a_access = 'X'; > b_dio_access = 'A'; > access = 'K'; > z = 62; > y = 6; > run; > data access_code; > input Code $ Value; > cards; > A 1 > C 2 > K 3 > M 4 > X 5 > ; > =========================== > Table Want: > a_access a_access_flag access access_flag b_dio_access > b_dio_access_flag y z > X +1 K > 0 A -1 > 6 62 > > ==================================== > I want to compare dataset ONE and TWO based on the column names which > contains word 'access'. > So in the comparison only access,a_access,b_dio_access columns will be > considered. > The value access,a_access,b_dio_access columns from table TWO will be > compared with the > values for respective columns from Table ONE. While comparing the two > values i have to consider > values of "Value" column from the Access_Code table. > e.g. a_access column from table Two has value 'X'and 'M' in table One. > So I will subtract 5 from 4 (because X=5 and M=4 in access_code > column). > Answer is positive so flag value will be +1. > I will create a column as a_access_flag and will put the value +1 in > it. > ====================================== > Till now I am only able to find out the column name which contains > word 'access'. > And I am able to count the number of columns by writing a macro as > %wordcnt. > Plase help me as I need it very urgently. > > This is what, I have done so far. > > proc sql; > select distinct(name) into :col_name separated by ' ' from > dictionary.columns > where upcase(libname) = 'WORK' > and upcase(memname) = 'TWO' and upcase(name) like '%ACCESS%'; > quit; > > %PUT _USER_; > %GLOBAL COUNT; > %macro wordcnt (string); > > %let count = 1; > %do %until (%qscan (&string, &count, %str ( )) = ); > > %let count = %eval (&count + 1); > %end; > %eval (&count - 1) > > %mend wordcnt; > > %LET X = %WORDCNT(&COL_NAME); > %PUT &X ; > ======================== > > Thanks in Advance. > > Regards, > Amar Mundankar. Hi all, If anybody knows how to compare columns from 2 tables ? Plese help. Regards, Amar Mundankar.
|
Pages: 1 Prev: sas questions Next: Query regarding SAS Macros & ODS |