楼主: 孤灯渡漠
2101 5

SAS如何做两年比较 [推广有奖]

  • 0关注
  • 0粉丝

本科生

52%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
993 点
帖子
82
精华
0
在线时间
61 小时
注册时间
2009-11-24
最后登录
2021-8-5

楼主
孤灯渡漠 发表于 2014-6-28 16:47:50 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我可计算出每年的汇总数据,如:

dat13:

city   y1   y2     y3      
hz   100  200  300
nb    29  38     83



dat14
city   y1   y2     y3      
hz   47  56  878
nb    12  34     56



我想直接得到两个数据集的比较,即14比13的增幅
有没有现成的方法
二维码

扫码加我 拉你入群

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

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

关键词:City CIT 有没有 数据集 如何

沙发
FB_FLORA 发表于 2014-6-30 09:54:05
楼主是不是想用proc compare?

藤椅
wwang111 发表于 2014-6-30 10:15:05
proc compare base=dat13 compare=dat14 out=result(drop=_type_ _obs_) noprint;
id city;
run;

板凳
孤灯渡漠 发表于 2014-7-1 13:56:21
FB_FLORA 发表于 2014-6-30 09:54
楼主是不是想用proc compare?
用了compare,但输出只有记录集的比较而已

报纸
bbear 发表于 2014-7-1 14:18:36
用SQL
proc sql;
create table xx as select a.*, b.y1 as by1, b.y2 as by2, b.y3 as by3, a.y1-b.y1 as dy1, a.y2-b.y2 as dy2, a.y2 -b.y2 as dy2
from dat13 as a left join dat14
on a.city=b.city;
--------------------------------------------
或用 merge by city 后, 再计算
PROC SORT DATA=dat13 OUT=dat13;
  BY city;

proc dat14A;
set dat14(rename=(y1=b_y1 y2=b_y2 y3=b_y3));

PROC SORT DATA=dat14A OUT=dat14A;
  BY city;
RUN;

DATA dat2 ;
  MERGE dat13 dat14A;
  BY city;
RUN:

Data dat22;
  set dat2;
  dy1=y1-by1;
  dy2=y1-by2;
  dy3=y1-by3;
  
run;

地板
FB_FLORA 发表于 2014-7-1 14:22:23
孤灯渡漠 发表于 2014-7-1 13:56
用了compare,但输出只有记录集的比较而已
我记得在difference中会有对应记录的单个变量的值的不同的显示,diff之类的
如果需要的是数据集的话好像可以通过ods output输出

我觉得可能看起来有些简陋……

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 00:10