全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2979 14
2011-04-18
请教各位老师:能不能用循环生成下面的结果(我写的程序很繁琐)?谢谢!
想根据group变量依次求出quality(大 中 小)变量的累加和,
最终结果如下:

                           
                                               Obs    quality    group    tot_number
                                                1       大         1        489
                                                2       小         1        136
                                                3       中         1        718
                                                4       大         2        355
                                                5       小         2         10
                                                6       中         2        319
                                                7       大         3       1114
                                                8       小         3         36
                                                9       中         3       1811



data onetwo;
input number quality$;
cards;
103 大
39 大
37 中
21 中
3 大
6 大
2 中
7 中
8 中
2 大
20 大
5 中
16 大
20 中
1 中
10 中
9 中
2 中
0 大
1 中
1 中
2 中
6 大
2 中
10 中
2 中
5 大
3 中
7 大
0 大
5 大
4 中
5 大
1 大
19 中
1 中
8 中
3 大
0 大
1 大
20 中
3 小
10 中
0 大
5 大
5 中
15 大
22 大
20 大
13 中
9 中
10 中
8 中
4 中
1 中
12 中
5 大
12 中
5 中
20 大
31 中
1 小
10 小
4 中
2 大
8 中
3 大
4 大
1 大
11 大
1 大
1 大
5 中
8 中
4 中
2 大
3 中
10 中
5 中
10 中
1 大
0 中
2 小
5 中
10 大
3 中
1 中
5 中
14 中
10 大
1 中
3 中
5 中
6 中
7 中
3 中
4 中
0 中
4 中
3 中
10 中
27 中
1 中
3 中
10 中
2 中
2 中
25 中
2 小
3 中
20 中
3 中
2 中
2 大
3 中
17 大
22 中
7 中
10 大
2 中
5 中
10 中
4 大
13 中
16 大
3 中
6 中
3 小
5 中
9 小
1 小
3 大
2 中
1 中
3 中
3 大
3 中
4 小
3 中
80 大
9 小
4 中
1 中
3 小
2 小
10 中
6 大
1 中
8 大
1 中
1 大
0 小
1 大
5 大
16 中
1 中
1 中
13 中
3 大
20 中
5 大
36 大
3 中
14 中
3 中
5 小
1 中
6 中
3 大
12 大
35 大
2 中
4 中
10 大
15 中
3 大
7 中
8 中
3 大
2 中
1 中
36 中
23 大
0 中
2 中
8 中
5 中
4 中
1 中
6 中
4 大
5 中
5 中
4 中
10 大
8 大
4 中
4 中
2 中
3 大
4 中
10 大
4 小
11 大
4 中
3 中
3 中
3 中
3 中
3 中
1 中
3 中
3 大
2 中
3 中
6 小
8 中
10 中
2 小
1 大
2 大
6 中
10 大
5 中
1 大
16 大
3 中
1 大
6 大
6 中
3 大
2 中
3 大
0 中
10 大
1 大
4 大
15 大
3 大
5 大
10 大
0 大
3 中
30 中
1 大
3 中
2 中
1 大
4 中
1 大
7 中
2 大
10 大
3 大
3 中
4 大
6 大
20 大
2 小
5 中
6 中
20 大
4 大
1 大
4 中
0 中
0 中
4 大
1 中
3 大
9 大
8 中
1 中
1 大
9 中
12 中
2 中
5 中
2 中
20 小
20 中
1 大
4 中
2 小
201 大
1 大
8 中
1 中
1 中
1 大
1 中
4 中
2 中
8 小
10 中
5 大
7 大
1 大
1 中
100 中
1 大
17 中
2 大
12 中
17 大
2 小
2 中
5 大
1 大
1 大
6 大
2 中
8 小
18 大
12 大
2 大
2 大
63 大
18 中
20 大
15 大
10 大
3 中
9 大
5 大
3 中
2 小
2 大
5 中
1 中
2 中
3 中
3 中
6 小
2 中
6 大
1 中
12 大
2 中
1 大
2 大
6 中
2 大
1 大
4 大
1 大
3 大
4 大
3 中
2 小
12 中
5 大
4 中
4 大
2 大
2 大
2 中
1 大
10 大
1 大
22 中
17 大
11 大
3 大
1 大
151 中
3 中
100 中
8 中
2 中
2 大
5 中
1 大
16 大
1 大
10 大
9 中
4 大
7 中
2 小
1 中
3 中
11 大
1 大
3 中
2 大
1 大
9 中
2 大
1 中
4 小
2 大
8 中
2 中
17 中
3 中
1 中
6 大
1 大
3 大
5 中
1 大
6 小
1 大
10 中
20 大
11 中
2 中
4 大
5 大
51 中
7 大
1 大
2 大
20 中
79 中
3 大
50 中
9 小
4 中
8 中
17 大
15 中
4 中
1 大
3 中
105 中
10 中
4 大
18 大
5 大
4 中
2 中
0 中
0 中
47 大
6 大
9 中
3 中
3 中
36 中
4 中
5 大
9 大
2 中
112 中
3 中
10 大
1 中
1 大
5 小
30 中
5 中
4 大
20 大
3 中
2 中
8 大
3 中
30 中
1 中
14 大
1 中
9 中
2 中
6 中
76 中
32 中
11 中
1 中
30 中
32 中
29 中
5 大
1 大
2 大
4 中
2 中
5 小
42 大
2 大
2 大
5 大
7 中
29 大
6 中
18 大
3 大
1 大
12 大
44 中
1 大
7 大
10 大
12 大
2 中
5 大
65 中
21 中
48 大
8 中
5 大
3 大
3 中
41 中
1 中
9 小
8 小
11 大
9 大
0 中
8 大
11 大
6 大
4 中
23 中
8 大
10 大
37 中
1 大
16 中
8 大
2 大
5 大
16 小
10 大
1 中
63 中
5 大
;
run;

data b;
set onetwo;
if number<10 then group=1;
if 10<=number<=15 then group=2;
if number>15 then group=3;
run;

proc freq data=b;
tables group*quality;run;

proc sort data=b;
by quality;run;

  data d;
  set b;
  if group=1;
  proc sort data=d;
  by quality;
  data d1;
  set d;
  by quality;
if first.quality then tot_number=0;
tot_number+number;
drop number;
if last.quality then output;run;

data e;
  set b;
  if group=2;
  proc sort data=e;
  by quality;
  data e1;
  set e;
  by quality;
if first.quality then tot_number=0;
tot_number+number;
drop number;
if last.quality then output;run;

data f;
  set b;
  if group=3;
  proc sort data=f;
  by quality;
  data f1;
  set f;
  by quality;
if first.quality then tot_number=0;
tot_number+number;
drop number;
if last.quality then output;run;

data total;
set d1 e1 f1;
run;
二维码

扫码加我 拉你入群

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

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

全部回复
2011-4-18 22:41:54
还是用R的角标运算函数which()简单
二维码

扫码加我 拉你入群

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

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

2011-4-18 22:48:37
2# 楚韵荆风


那麻烦能不能把Rcode贴出来啊
谢谢!
二维码

扫码加我 拉你入群

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

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

2011-4-18 22:59:30
1# priss111

你先把你的数据保存到一个txt文档里面命名为11.txt,然后执行下面程序
附件列表
二维码

扫码加我 拉你入群

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

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

2011-4-18 23:06:03
复制代码
二维码

扫码加我 拉你入群

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

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

2011-4-18 23:15:24
5# hopewell

谢谢!!!

这程序写的漂亮极了...
赞...

请问您用什么编辑器?
而且显示程序的行数1,2,...12
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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