全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
9951 4
2015-12-25
name kemu  diyici   dierci disanci……
zhao yuwen   65       66
zhao shuxue  99       90
zhao yingyu  87       88
qian huaxue   90       92
qian shuxue  99       98
qian yingyu  87       66
sun  yuwen   77       80
sun  shuxue  88       90
sun  yingyu  87       88
sun  shengwu 66       77

变成下面的
name diyici dierci disanci ……
zhao  251     244
qian  276     256
sun   318     335
每个人无论学了多少科目,考了多少次试,都按姓名对每次考试求和

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-12-25 10:46:46
proc sql;
    select distinct name,sum(diyici) as diyici,sum(dierci) as dierci from have group by name;
quit;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-12-30 00:19:29
proc means data=test nway;
class name;
var diyici dierci;
output out=test_sum(drop=_type_ _freq_) sum= / autoname;
run;

proc print data=test_sum;
run;

其中test是原始数据, test_sum是求和以后的数据。若是想要在生成的数据中加上每一次考试所有人的分数的总和,去掉nway即可。 另外若是想要除了求和外还要求每个人每次考试的最低分、最高分及平均分,在sum=后面加上min= max= mean=就可以了, 因为使用了autoname, 每一个变量都会自动存为与原变量名对应的名字。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-1-4 17:44:59
%macro test();
proc summary data=原始数据集 mway missing;
class name;
var
%do i=1 %to &sum.;
di_&i._ci          /*变量名 具体自己定义*/
%end;;
output out=输出数据集(drop=_type_) sum=;
run;
%mend;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-2-25 18:55:00
/*Create original dataset*/

data score;
input name$ course$ first second  @@;
cards;
zhao yuwen   65 66
zhao shuxue  99 90
zhao yingyu  87 88
qian huaxue  90 92
qian shuxue  99 98
qian yingyu  87 66
sun  yuwen   77 80
sun  shuxue  88 90
sun  yingyu  87 88
sun  shengwu 66 77
;
run;


/*METHOD 1: Calculate total score use FIRST. LAST.*/
proc sort data=score;
        by name;
run;

data sum_score;
        set score;
        by name;
        if first.name then do;
                sum1=0;
                sum2=0;
        end;
        sum1+first;
        sum2+second;
        if last.name;
        drop course;
run;

/*METHOD2: Calculate total score by PROC MEANS step*/
proc means data=score sum;
        var first second;
        class name;
        output out=sum_score2 sum(first second)=sum1 sum2;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群