楼主: apollonia
7684 2

[原创博文] 如何分组求均值? [推广有奖]

  • 0关注
  • 21粉丝

已卖:5865份资源

副教授

44%

还不是VIP/贵宾

-

威望
0
论坛币
116375 个
通用积分
44.4920
学术水平
29 点
热心指数
59 点
信用等级
34 点
经验
12957 点
帖子
433
精华
0
在线时间
1079 小时
注册时间
2007-12-15
最后登录
2024-4-3

楼主
apollonia 发表于 2012-1-21 00:19:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我的数据

A  1  2
A  2  3
B  1  4
B  2  5
.
.
.
我想根据第一列变量分组求均值,然后赋值到每行后面。如何实现?
二维码

扫码加我 拉你入群

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

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

关键词:变量分组 如何实现 如何

回帖推荐

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

data raw; input id $ x y; datalines; A 1 2 A 2 3 B 1 4 B 2 5 ; run; 普通方法: proc sql; create table result1 as select raw.*, mean(x) as x_mean, mean(y) as y_mean from raw group by id; quit; proc print; run; 文艺方法: proc summary data=raw nway; class id; var x y; output out=raw_smy(drop=_:) mean=/autoname; run ...

沙发
Kalet 在职认证  发表于 2012-1-21 03:31:10
data raw;
  input id $ x y;
  datalines;
A  1  2
A  2  3
B  1  4
B  2  5
  ;
run;

普通方法:
proc sql;
  create table result1 as
    select raw.*,       
           mean(x) as x_mean,
           mean(y) as y_mean
          from raw
            group by id;
quit;
proc print; run;

文艺方法:
proc summary data=raw nway;
  class id;
  var x y;
  output out=raw_smy(drop=_:) mean=/autoname;
run;
data result2;     
  retain id x y x_mean y_mean;
  if _n_=1 then do;
    if 0 then set raw_smy;
    declare hash
      ht(dataset: "raw_smy");
      ht.definekey("id");
      ht.definedata(all: "yes");
      ht.definedone();
  end;
  set raw;
  ht.find(key: id);
run;
proc print; run;

2B方法:
data result3;  
  if _n_=1 then do until (a_obs_last);   
    set raw(where=(id="A")) end=a_obs_last;   
    a_n+1;
    a_x_sum+x;  
    a_y_sum+y;
  end;
  if _n_=1 then do until (b_obs_last);
    set raw(where=(id="B")) end=b_obs_last;   
    b_n+1;
    b_x_sum+x;   
    b_y_sum+y;
  end;  
  set raw;  
  if id="A" then do;
    x_mean=a_x_sum/a_n;
    y_mean=a_y_sum/a_n;
  end;
  else if id="B" then do;
    x_mean=b_x_sum/b_n;
    y_mean=b_y_sum/b_n;
  end;
keep id x y x_mean y_mean;
run;
proc print; run;
已有 1 人评分经验 收起 理由
crackman + 100 鼓励积极发帖讨论

总评分: 经验 + 100   查看全部评分

藤椅
时间的歌 发表于 2015-4-25 21:22:52
感谢二楼~

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-16 06:35