|
SAS 在数据步中可以使用 retain 来计算总和或者个数,简单介绍一下,主要介绍使用 sql 语句获得总和或者个数。
(1)使用 retain 来计算,一般是先使用 retain 声明变量,然后直接使用变量进行计算
- * retain的使用,计算总体人数,但是每一个观测都会含有一个num 变量 ;
- data calc_num;
- retain num;
- input name $ age sex $;
- num+1;
- cards;
- zhou 18 f
- wang 23 m
- li 34 f
- wu 25 m
- ;
- run;
- proc print data=calc_num;
- run;
复制代码
结果是:
(2)使用 sql 语句来计算,使用的时候,只需要使用 sum(字段名),count(字段名)和 group by 相结合
- *sql 的使用;
- dm log "clear";
- ods listing;
- data temp;
- input name $ subject $ score;
- cards;
- zhou math 100
- wang math 90
- li math 98
- zhou chinese 120
- wang chinese 100
- li chinese 85
- zhou english 100
- wang english 80
- li english 90
- ;
- run;
- proc sql;
- create table student_sum as
- select
- name,
- sum(score) as sum,
- count(score) as num
- /* score*/
- from
- work.temp
- group by
- name
- order by
- num;
- run;
- proc print data=student_sum;
- run;
复制代码
结果为:
注意:
都是同样的问题,sql 处理问题的方法比 data 步更加人性化 |
|