全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
10565 5
2012-09-21
比如我有一个数据集 我想实现和excel一样的 进行A2-A1,A3-A2,A3-A2,这样的循环相减,是在同一列中的相邻的行相减,怎么实现呢?还有如果我想取得A1代表的数 怎么表达呢?我是新手,麻烦各位大侠了 谢谢哈
如图 实现比如Q1的10-9  1-10 7-7 10-7这样的相减 还有取得Q1列第一行的数9 怎么取?
二维码

扫码加我 拉你入群

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

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

全部回复
2012-9-21 16:02:27
图是这样的 上面的那个1-10 应该是7-10 打错了 该怎么实现呢 求助!!!
附件列表
QQ截图20120921155526.png

原图尺寸 1.67 KB

QQ截图20120921155526.png

二维码

扫码加我 拉你入群

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

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

2012-9-21 16:12:44
差分的话这样可以,要是跳着减我就不知道了

data a;
input Q1;
cards;
9
10
7
7
10
;
run;

data b;
set a;
q1_1=lag(q1);
if _n_=1 then q1_1=0;
c=q1-q1_1;
run;
二维码

扫码加我 拉你入群

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

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

2012-9-21 18:14:08
其实,若想进行进行A2-A1,A3-A2,A3-A2相减,SAS的DATA步有特定的差分函数。比如
data a;
input x;
cards;
12
23
43
32
;
run;
data a;
set a;
y = diff(x);
run;

即可。而函数diff2 是二阶差分等等。
二维码

扫码加我 拉你入群

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

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

2012-9-21 18:16:25
不好意思,上面的函数diff 应该改为dif,二阶差分dif2 改为dif2
二维码

扫码加我 拉你入群

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

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

2012-9-24 09:04:02
谢谢楼上的两位大侠 我试试哈
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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