SAS中文论坛

标题: 求助一个数据处理的编程问题[急] [打印本页]

作者: shiyiming    时间: 2006-2-6 16:25
标题: 求助一个数据处理的编程问题[急]
各位大哥好:
我是一个SAS的初学者,我想请大家帮忙编一个程序。
我有一组数据如下:
headno        BADHEAD
2        0
3        0
2        1
1        1
1        0
2        0
3        0
1        1
2        1
3        1
最终我想得到如下的结果:
BADHEAD        PFCODE        N Rows        % of Total
0        5105        3        30.00%
0        5109        2        20.00%
1        8250        2        20.00%
1        8700        3        30.00%
老板急着要结果,哪位大哥帮帮忙吧!小弟万分感激!


作者: shiyiming    时间: 2006-2-6 21:02
标题: 请把过程讲述一下
从原始数据是怎么得到结果的?请把过程讲述一下
作者: shiyiming    时间: 2006-2-7 08:56
标题: 解释过程
我是用JMP软件里的SUMMARY功能得出的,其实就是算出相同记录频数和其概率(也就是频数占总数的百分比),这位大哥要是会的话就帮帮忙吧,小弟先谢过了。
作者: shiyiming    时间: 2006-2-7 10:52
标题: 崂山道士
我就不信有人能从你的原始数据算出PFCODE来 <!-- s:oops: --><img src="{SMILIES_PATH}/icon_redface.gif" alt=":oops:" title="Embarassed" /><!-- s:oops: -->
作者: shiyiming    时间: 2006-2-7 12:25
标题: 实在对不起,我写错了,重新写一边。
谢谢这位大哥提醒,我写错了,重新给你们写一边:
数据如下:
BADHEAD        PFCODE
1                       1212
1                       1212
1                       1212
0                       4304
1                       4304
0                       4304
1                       1500
0                       1500
得到结果如下:
BADHEAD        PFCODE        N Rows        % of Total
0        1500        1        12.50%
0        4304        2        25.00%
1        1212        3        37.50%
1        1500        1        12.50%
1        4304        1        12.50%
就是上面的了。
作者: shiyiming    时间: 2006-2-15 10:40
标题: 初学者,程序不够简练,但也能用
data test;
input BADHEAD PFCODE;
cards;
1 1212
1 1212
1 1212
0 4304
1 4304
0 4304
1 1500
0 1500
;run;
proc sort data=test;
by badhead pfcode;
run;
data test1 ;
set test;
by badhead pfcode;m=1;
if first.pfcode then n=0;
n+m;
if last.pfcode;
run;
PROC SQL;
SELECT BADHEAD ,PFCODE,N,N/SUM(N) AS RPCOFTOTAL FROM WORK.TEST1;
QUIT; <!-- s:P --><img src="{SMILIES_PATH}/icon_razz.gif" alt=":P" title="Razz" /><!-- s:P -->  <!-- s:P --><img src="{SMILIES_PATH}/icon_razz.gif" alt=":P" title="Razz" /><!-- s:P -->
作者: shiyiming    时间: 2006-2-16 10:33
标题: 谢谢!我也写了一下。
谢谢这位大哥。下面是我这几天写的,请各位大哥指点。
data test;
input BADHEAD PFCODE;
cards;
1 1212
1 1212
1 1212
0 4304
1 4304
0 4304
1 1500
0 1500
;
run;
proc summary data=test nway ;
class BADHEAD PFCODE;
output out=out1(drop=_type_ ) ;
run;
proc sql;
create table out2 as
select BADHEAD,PFCODE, _freq_, _freq_/sum(_freq_)as ratio from out1 ;
run;
其实主要部分也是用SQL来解决的。




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2