楼主: ahazzh
4631 7

SAS中用DO循环与数组来计算相邻观测的差值 [推广有奖]

  • 2关注
  • 0粉丝

高中生

32%

还不是VIP/贵宾

-

威望
0
论坛币
61 个
通用积分
1.4500
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
1504 点
帖子
13
精华
0
在线时间
30 小时
注册时间
2016-10-25
最后登录
2024-2-20

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
2017-02-22_看图王.png
二维码

扫码加我 拉你入群

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

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

关键词:do循环

沙发
wang1839 在职认证  发表于 2017-2-22 22:50:12 |只看作者 |坛友微信交流群
这个直接调用DIF函数就可以了,不用ITERATION

使用道具

藤椅
zwnSAS121 发表于 2017-2-23 19:01:35 |只看作者 |坛友微信交流群
用lag函数

使用道具

板凳
yingj7093 在职认证  发表于 2017-2-24 15:47:56 |只看作者 |坛友微信交流群
proc sort data=sales;by area;run;
data sales1;
set sales;
by area;
if area="东" then do;
dif1=dif(sales);
dif2=dif(profit);
end;
run;

使用道具

报纸
ahazzh 发表于 2017-2-26 16:10:24 |只看作者 |坛友微信交流群
zwnSAS121 发表于 2017-2-23 19:01
用lag函数
dif更方便,但是题目要求是用DO循环和数组

使用道具

地板
ahazzh 发表于 2017-2-26 16:11:50 |只看作者 |坛友微信交流群
yingj7093 发表于 2017-2-24 15:47
proc sort data=sales;by area;run;
data sales1;
set sales;
谢谢,但是我想不出用循环和数组的思路,如有想法请帮个忙

使用道具

7
ahazzh 发表于 2017-2-26 16:12:37 |只看作者 |坛友微信交流群
wang1839 发表于 2017-2-22 22:50
这个直接调用DIF函数就可以了,不用ITERATION
那如果用数组和循环呢,大神可有啥思路,求赐教

使用道具

8
ahazzh 发表于 2017-2-26 16:39:32 |只看作者 |坛友微信交流群
data sale;
set tmp1.sale;
if market = '东';
retain lag1 lag2;
array array{*}year sale profit lag1 lag2 dif1 dif2;
do i = 4 to 5;
        array{i+2} = array{i-2}-array{i};
        array{i} = array{i-2};
end;
drop i lag1 lag2;
run;

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 01:50