У меня есть два набора данных. Их предметом является одна и та же группа, но разные «образцы» рисуются разными исследователями. Следовательно,SAS, сравнивая частоты двух наборов данных
я не могу определить матчи (т.е. Peter Smith в обоих образцах),
переменные называются по-разному, хотя они означают то же самое,
- переменные находятся в разных местах наборов данных
Теперь я хотел бы сравнить два набора данных, чтобы увидеть, насколько они похожи в целом. Я думал о сравнении выходов частоты для переменных, о которых я знаю, они имеют одинаковый смысл.
До сих пор мое решение довольно громоздко в моих глазах, потому что мне пришлось бы делать все шаги для каждой комбинации переменных.
Есть ли более элегантное/эффективное решение?
Я также хотел бы сравнить средние, медианные, процентили для числовых переменных.
спасибо, что заблаговременно!
Gerit
Вот мое текущее решение для примера. Я назвал все наблюдения по-разному, так как я не могу, в своем исходном файле, указать из переменной ID, какой является наблюдение.
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;
Не сливать несвязанные наборы данных! К счастью для вас, у них одинаковое количество наблюдений, и ваша статистика имеет смысл, но набор данных, который вы создаете, - это дерьмо. –