使用proc方法计算SAS中的百分比

使用proc方法计算SAS中的百分比,sas,Sas,我在SAS中有一些数据需要处理,但我遇到了问题。我的专栏是 身份证、年龄和男性 120N 2.20年 3 21岁 423N 5 21岁 621N 720N 8 21岁 9月23日 有没有一种方法可以让男性与年龄成正比?也就是说,年龄是列,我想知道每个列的男性百分比?我希望能够使用proc方法而不是proc表格来找到这个。谢谢。除了1/0字段的特殊情况外,PROC不是这个意思。你可以将Y和N转换为1和0,然后取新字段的平均值,这相当于男性的百分比;但是,如果数据保持不变,PROC意味着无法给出每个

我在SAS中有一些数据需要处理,但我遇到了问题。我的专栏是

身份证、年龄和男性

120N

2.20年

3 21岁

423N

5 21岁

621N

720N

8 21岁

9月23日


有没有一种方法可以让男性与年龄成正比?也就是说,年龄是列,我想知道每个列的男性百分比?我希望能够使用proc方法而不是proc表格来找到这个。谢谢。

除了1/0字段的特殊情况外,PROC不是这个意思。你可以将Y和N转换为1和0,然后取新字段的平均值,这相当于男性的百分比;但是,如果数据保持不变,
PROC意味着
无法给出每个类别中的百分比。这就是
PROC FREQ
PROC tablate
所做的

除了1/0字段的特殊情况外,PROC的意思不是这样的。你可以将Y和N转换为1和0,然后取新字段的平均值,这相当于男性的百分比;但是,如果数据保持不变,
PROC意味着
无法给出每个类别中的百分比。这就是
PROC FREQ
PROC tablate
所做的

data input;
input id age male $;
cards;
1 20 N
2 20 Y
3 21 Y
4 23 N
5 21 Y
6 21 N
7 20 N
8 21 Y
9 23 Y
;
run;

ods trace on;
ods output CrossTabFreqs=work.stats;
proc freq data=input;
tables age*male;
run;
您的结果:

options nolabel;
proc sql;
select age, RowPercent as MalePercent, 100 - RowPercent as WomanPercent
from work.stats
where _type_='11' and male='Y';
quit;
“11”是“年龄和男性变量对这一总结性观察的贡献”的二元表示

在这样的问题中,最好说明您是只想“查看”结果,还是想将其存储在一个表中(也许这就是为什么PROC TABLATE被拒绝的原因?)

您的结果:

options nolabel;
proc sql;
select age, RowPercent as MalePercent, 100 - RowPercent as WomanPercent
from work.stats
where _type_='11' and male='Y';
quit;
“11”是“年龄和男性变量对这一总结性观察的贡献”的二元表示


在这样的问题中,最好说明您是只想“查看”结果还是想将其存储在表中(可能这就是为什么PROC TABLATE被拒绝的原因?)

为什么您不想使用
PROC TABLATE
,这是为满足您的要求而制定的过程?这相当于说“请告诉我如何用叉子吃鸡汤。我想用叉子而不是勺子。谢谢。”你为什么说你不想使用
PROC tablate
,这是为满足你的要求而制定的程序?这相当于说“请告诉我如何用叉子吃鸡汤。我想用叉子而不是勺子。谢谢。”