命甴己造 发表于 2019-9-12 15:32:01

SAS中计算总和或者计算总数的方法


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 步更加人性化
页: [1]
查看完整版本: SAS中计算总和或者计算总数的方法