Prev: Categorical Data Analysis Using SAS, Seminar July 12-16
Next: about sheet= statement in proc export
From: Al on 18 Jun 2010 16:45 Dear all: This is the dataset i have and data have; input name $ deg $ dep $ res test $ temp bp1 bp2 ds $ ; cards; BHA SSP DMA 12 BUN 89 12 12 AE BHA SSP DMA 11 BUN 11 19 11 AE BAR DCO CLI 18 BUN 11 19 98 AE MEL DMS DMA 11 BUN 98 10 17 AE BHA SSP ADN 12 BUN 89 12 12 SN BHA SSP ACN 12 BUN 89 12 12 SN BHA SSP ANM 12 BUN 89 12 12 SN BHA SSP ANM 12 BUN 89 12 12 SN BAR DCO CLI 18 BUN 11 19 98 SN MEL DMS DMA 11 BUN 98 10 17 SN ; run; Variable DS represents the name of the dataset they came from (AE or SN).. I need to compare datapoints that came from DS = 'AE' to DS = 'SN' and create a dataset if there were any changes to the variable(name,deg,dep,res,test,temp,bp1,bp2) values from data set AE to dataset SN,or any additions or any deletions i have tried proc compare and proc sort with nodupkey but was not able to get desired results Thanks in Advance Al;
From: Patrick on 18 Jun 2010 21:08 Hi Al What's missing is a key which clearly identifies a record within AE or SN - at least I can't figure out which variable combination could be used to build such a composite key. If no such key exists it's not possible to determine if a record from AE and SN represent the same event even if some of the data are different. Best you can do is to determine whether you have matching records from AE and SN (using a natural key) or not. That's what the code below does. In case you have a key in your real data then you could of course split the data set into two data sets (haveAE haveSN as done below) and then use a proc compare. The key variables would be used in the BY statement, the rest in VAR and WITH. data have; input name $ deg $ dep $ res test $ temp bp1 bp2 ds $ ; cards; BHA SSP DMA 12 BUN 89 12 12 AE BHA SSP DMA 11 BUN 11 19 11 AE BAR DCO CLI 18 BUN 11 19 98 AE MEL DMS DMA 11 BUN 98 10 17 AE BHA SSP ADN 12 BUN 89 12 12 SN BHA SSP ACN 12 BUN 89 12 12 SN BHA SSP ANM 12 BUN 89 12 12 SN BHA SSP ANM 12 BUN 89 12 12 SN BAR DCO CLI 18 BUN 11 19 98 SN MEL DMS DMA 11 BUN 98 10 17 SN ; run; proc sort data=have; by name deg dep res test temp bp1 bp2; run; data haveAE haveSN; set have; if ds='AE' then output haveAE; else if ds='SN' then output haveSN; drop ds; run; data BothAEandSN onlyAE onlySN; merge haveAE (in=inAE) haveSN (in=inSN); by name deg dep res test temp bp1 bp2; if inAE and inSN then output BothAEandSN; else if inAE and NOT inSN then output onlyAE; else if NOT inAE and inSN then output onlySN; run; HTH Patrick
|
Pages: 1 Prev: Categorical Data Analysis Using SAS, Seminar July 12-16 Next: about sheet= statement in proc export |