J'ai deux ensembles de données. Leur sujet est le même groupe, mais différents "échantillons" sont dessinés par différents chercheurs. Par conséquent,SAS comparant les fréquences de deux ensembles de données
Je ne peux pas identifier les matchs (c.-à-Peter Smith dans les deux échantillons),
variables sont nommées différemment si elles ont la même signification,
les variables- sont dans des endroits différents des ensembles de données
Maintenant, je voudrais comparer les deux ensembles de données pour voir à quel point ils sont similaires dans leur ensemble. J'ai pensé à comparer les sorties de fréquence pour des variables dont je sais qu'elles ont le même sens. Jusqu'à présent, ma solution est plutôt lourde à mes yeux, car je devrais faire toutes les étapes pour chaque combinaison de variables.
Existe-t-il une solution plus élégante/efficace?
Je voudrais également comparer les percentiles moyens, médians, pour les variables numériques.
Merci beaucoup d'avance!
Gerit
Voici ma solution actuelle pour un exemple. J'ai nommé toutes les observations différemment car je ne peux pas, dans mon fichier original, dire à partir de la variable ID quelle observation est laquelle.
data have1;
input Name $ road means goal ;
datalines;
adam 1 3 0
bob 1 1 1
clint 2 2 0
dean 3 1 1
eric 2 1 0
flint 1 2 1
gerald 3 1 1
;
run;
data have2;
input Name $ street finish other purpose ;
datalines;
harry 2 1 0 3
idefix 1 0 0 2
john 3 1 1 2
kelvin 1 0 2 2
liam 2 1 2 1
max 3 1 2 1
nero 2 0 1 3
ovid 3 0 2 3
;
run;
proc freq data=have1;
tables road/out= fhave1road
(rename=(percent=pct1 count=count1));
quit;
proc freq data=have2;
tables street/out= fhave2street
(rename=(street = road percent=pct2 count=count2));
quit;
data comb;
merge fhave1road fhave2street;
by road;
diffpct = pct1 - pct2;
diffct = count1 - count2;
run;
proc print data = comb;
var road count1 count2 diffct pct1 pct2 diffpct;
quit;
proc means data=have1;
var road;
output out=mhave1road ;
quit;
proc sort data=mhave1road;
by _STAT_;
quit;
proc means data=have2;
var street;
output out=mhave2street ;
quit;
proc sort data=mhave2street;
by _STAT_;
quit;
data mcomb (keep=_STAT_ road street diff) ;
merge mhave1road mhave2street;
by _STAT_;
diff = road-street;
run;
proc print data = mcomb;
quit;
Ne pas fusionner des ensembles de données non liées! Heureux pour vous, ils ont le même nombre d'observations et vos statistiques ont un sens, mais l'ensemble de données que vous créez est de la merde. –