大家好.
请问如何对多个数据集批量整理后,再批量进行卡方检验?
如何用宏实现红色的代码?
谢谢.
第1步:如何对导入的多个txt数据集(保存在逻辑库work中)批量进行整理?
其中txt导入数据集a为例,其他导入的txt数据集格式与a同:
data a;
format var1 best1.;
format var2 best2.;
input var1 var2; *var1=阳性例数,var2=总例数;
cards;
7 30
1 32
;
run;
data group;
do group = 1 to 2;
do r = 1 to 2;
output;
end;
end;
run;
%do i = 1 %to &nobs.;
data work.&name.(keep=freq);
set work.&name.;
var1_=var2-var1;
freq=var1; output;
freq=var1_; output;
run;
/***将(1)与group数据集横向合并生成所需数据格式;*/
data work.&name.;
merge group work.&name.;
run;
%end;
第2步:如何批量对步骤1中的数据集逐个进行卡方检验?
/***proc freq 生成卡方检验的结果,并将各组频数、卡方值与P值合并在一个数据集中;***/
%do i = 1 %to &nobs.;
proc freq data=work.&name.;
weight freq;
tables group*r/expected chisq out=count(keep=count) exact;
output out=chisq(drop=df_pchi) pchi;
run;
data chisq&name.;
set chisq;
label _pchi_="卡方值"
p_pchi="P值";
run;
proc transpose data=count out=count&name.;
run;
data count&name.;
set count&name.;
keep count;
rename COL1=A1
COL2=A2
COL3=B1
COL4=B2;
run;
data countchisq&name.;
merge count&name. chisq&name.;
run;