楼主: seelovesa
4840 7

[问答] 请教:如何循环分组求和 [推广有奖]

  • 0关注
  • 0粉丝

已卖:161份资源

硕士生

71%

还不是VIP/贵宾

-

威望
0
论坛币
74 个
通用积分
0.6000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2168 点
帖子
125
精华
0
在线时间
219 小时
注册时间
2008-3-28
最后登录
2014-5-5

楼主
seelovesa 发表于 2010-12-6 14:38:54 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
各位高手:
       我有如下数据,想实现分时间组对p求和,该怎么办呢?
time              P1        P2       P3        
1                 11         12       15
1                 23         11       17
.2                 323       0         18
2                123        89        90
3                762         1        18
想对每一列对按照时间分组求和,就是分别求出P1,P2,P3下time=1是对应数的和,time=2是等等

先谢谢各位大侠
二维码

扫码加我 拉你入群

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

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

关键词:time 各位大侠 Tim IME 怎么办 请教 分组 求和

回帖推荐

Isscaliu 发表于2楼  查看完整内容

主要有两种方法做,一个是有proc means, 主要是在data step的时候生成一个sum作为row的总和,然后用proc means找和。另外一个是用data step。视乎个人喜好。个人认为proc means比较直接! data xxx; input time $ P1 P2 P3; sum=sum(of p1--p3); cards; 1 11 12 15 1 23 11 17 2 323 0 18 2 123 ...

本帖被以下文库推荐

沙发
Isscaliu 发表于 2010-12-6 16:00:23
主要有两种方法做,一个是有proc means, 主要是在data step的时候生成一个sum作为row的总和,然后用proc means找和。另外一个是用data step。视乎个人喜好。个人认为proc means比较直接!
data xxx;
input time $   P1 P2  P3;
sum=sum(of p1--p3);
cards;
1                 11         12       15
1                 23         11       17
2                 323       0         18
2                123        89        90
3                762         1        18
;
run;
proc sort data=xxx;
by time;
run;
proc means data=xxx sum maxdec=0;
var sum;
class time;
ways 1;
run;
data yyy;
set xxx;
by time;
sum=sum(of p1--p3);
if first.time then do;
total=0;
end;
total+sum;
if last.time then output;
keep time total;
run;
It was the best of times, it was the worst of times.

藤椅
seelovesa 发表于 2010-12-6 16:23:18
2# Isscaliu
谢谢兄弟

你那个好像是求time等于一时:同一行p1+p2+p3


我是想求time=1时:p1下 所有数的和,P2下所有数的和以及P3下所有数的和
依次time=2时等等
这样改怎么求啊? 希望大侠指教
先谢谢了

板凳
soporaeternus 发表于 2010-12-6 17:00:18
  1. proc sql;
  2. create table r as
  3. select
  4. time
  5. ,sum(p1) as p1
  6. ,sum(p2) as p2
  7. ,sum(p3) as p3
  8. from xxx
  9. group by time
  10. order by time
  11. ;
  12. quit;
复制代码
Let them be hard, but never unjust

报纸
Isscaliu 发表于 2010-12-6 18:13:53
那更加容易,直接proc means就可以了连data step的sum都可以,兄弟!或者像楼上的用proc sql!
proc means data=xxx sum maxdec=0;
var p1--p3;
by time;
run;
It was the best of times, it was the worst of times.

地板
baoaibaobao 发表于 2010-12-6 19:51:33
呵呵,还是喜欢用soporaeternus 的SQL

7
firstknife 发表于 2012-12-27 13:54:02
貌似SQL更强大些

8
firefox29 发表于 2014-2-18 17:21:44
soporaeternus 发表于 2010-12-6 17:00
请问SQL怎么实现P1-P100呢?总不能一个个写吧

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 02:25