楼主: 蒋蒋蒋蒋蒋
1922 5

[问答] 【SAS】如何对前后两行的数值进行有条件的比对 [推广有奖]

  • 0关注
  • 0粉丝

已卖:2份资源

本科生

3%

还不是VIP/贵宾

-

威望
0
论坛币
40 个
通用积分
2.3005
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
478 点
帖子
21
精华
0
在线时间
113 小时
注册时间
2018-3-28
最后登录
2025-9-19

楼主
蒋蒋蒋蒋蒋 发表于 2020-3-16 20:13:10 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
求教SAS如何对前后行的数值进行有条件的比对,
举例来说,有如下排序好的数据,我想取出观测值里,前后ID相同的的所在行,并对其所对应的Y值求差值。
obsIDY

1

2.14

2

2.25

3

1.9

4

1.897

5

2.87

6

2.87




我打算的是先取出相邻ID相同的数据所在行,结果如下(写代码的时候主要是卡在了这步)
obsIDY

1

2.14

2

2.25

5

2.87

6

2.87



然后再对Y求差值Z,(可以使用滞后一阶的方式,或者有其他更优解决方法),最终想要获得的数据是这样的:
obsIDYZ

2

2.25

0.11



不知道对于这样的问题SAS代码应该如何写(或者其他软件,比如stata,Eviews什么的),求教!感谢!


二维码

扫码加我 拉你入群

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

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

关键词:EVIEWS Eview sas代码 Stata 相同的数据

沙发
Jia1Zhao 发表于 2020-3-17 09:29:48
如图示例,结果大概是这样的

微信图片_20200317092840.png (2.16 KB)

微信图片_20200317092840.png

微信截图_20200317092756.png (7.08 KB)

微信截图_20200317092756.png

藤椅
l1i2n3i4n5g 在职认证  发表于 2020-3-17 12:01:17
data test;
   input
obs        ID $        Y;
cards;
1        王        2.14
2        王        2.25
3        何        1.9
4        胡        1.897
5        郑        2.87
6        郑        2.87
;
run;

data want;
   set test;
   id_lag=lag(id);
   y_lag=lag(y);
   if id=id_lag then dif=y-y_lag;
run;

proc print;run;

板凳
chasedream118 发表于 2020-3-17 13:26:24
data result;
set table;
by id;
id_lag = lag(id);
y_lag = lag(y);
if id = id_lag then diff = y - y_lag;
if diff ^= 0 and diff ^= .;
run;

报纸
蒋蒋蒋蒋蒋 发表于 2020-3-21 20:19:38
l1i2n3i4n5g 发表于 2020-3-17 12:01
data test;
   input
obs        ID $        Y;
谢谢!

地板
蒋蒋蒋蒋蒋 发表于 2020-3-21 20:20:47
谢谢各位的回复解答,先滞后一阶然后再用if-then 已经解决问题了!

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

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