【发布时间】:2014-06-30 12:29:20
【问题描述】:
使用以下代码
data mydata5;
input default$ numofkids$ count;
datalines;
good nochildren 1500
good kids1to2 2200
good kids3plus 300
bad nochildren 500
bad kids1to2 300
bad kids3plus 200
;
run;
我创建了一个数据集
Obs default numofkids count
1 good nochildr 1500
2 good kids1to2 2200
3 good kids3plu 300
4 bad nochildr 500
5 bad kids1to2 300
6 bad kids3plu 200
我一直试图达到的目标是这样的
nochildren other
good 1500 2500
bad 500 500
我已经尝试了很多东西,但到目前为止没有任何效果。我知道有任何简单的方法,而无需进入复杂的代码。
我想运行一个数据步骤,我可以在其中设置 mydata5 并创建一个数据集,该数据集将按照我想要的方式进行格式化,并且只需要最少的编码。
有人可以就此提供一些见解吗?
然后目的是运行 proc freq 以完成 chisq 测试。
我设法在代码上取得了一些进展,但我的代码并没有像我想要的那样生成表格。但是,我仍然可以进行 chisq 测试
data mydata6;
set mydata5;
if numofkids='nochildren' then Group=1;
else Group=2;
run;
proc freq data=mydata6;
weight count;
tables default*Group/chisq;
run;
data mydata61;
set mydata5;
if numofkids='kids3plu' then Group=1;
else Group=2;
run;
proc freq data=mydata61;
weight count;
tables default*Group/chisq;
run;
另外,我遇到的另一个问题是,当我尝试对数据进行分组时,我必须指定 numofkids=kids3plu 而不是整个字符串 kids3plus。如果我指定了整个字符串,则数据没有分组。请问有人能评论一下吗?
【问题讨论】:
标签: sas dataset transformation