怎样用SAS统计数据集中某一数据出现的频数?

来源:百度知道 编辑:UC知道 时间:2024/05/30 07:13:16
数据集的一部分如下:
p1 p2 p3 p4 p5 p6 p7 ...
case1 a b c b b a c c a a
control1 c c b a a a b c c c
case2 a a b c b a a c b c
control2 b b c a a c b a c b
control3 c c c a a c c b c c
...

想要通过统计生成如下的表:
Na Nb Nc
case * * *
control * * *

Na,Nb,Nc分别是case和control里a,b,c的个数

请问上述过程如何用SAS代码实现?
另外,得到这样的2*3的表之后,如何求相应的卡方值,并在自由度为2的情况下返回P值?
期待赐教!不胜感激!

代码:
data temp;
input group $ letter $ @@;/*重新定义变量,group是分类,letter是表示具体的数值*/
cards;
case a case b case c case b case b case b case a case c case c case a case a control a control b control c control b control b control a control c control c control a control a case a case a case b case c case b case a case a case c case b case c case b case c control a control b control c
;
run;

proc freq data=temp;
tables group*letter /chisq nopercent norow nocol;
/*其中:chisq是求卡方统计量的值,norow是表示不显示行的百分比,nocol是表示不显示列的百分比*/
run;

显示的结果:(我都截好了,就是传不上来,就是一个表,一个统计量表)

结果的解释:
1. group*letter表就是所要的频数表;
2. group*letter表的统计量中列出了卡方值以及p值(最后一个概率表示的就是p值)。