请选择 进入手机版 | 继续访问电脑版
楼主: ch03en12tong
951 4

求教程序疑问 [推广有奖]

  • 2关注
  • 1粉丝

大将军

博士生

80%

还不是VIP/贵宾

-

威望
0
论坛币
1487 个
通用积分
4.9900
学术水平
3 点
热心指数
8 点
信用等级
2 点
经验
3792 点
帖子
210
精华
0
在线时间
413 小时
注册时间
2009-10-28
最后登录
2023-10-24

ch03en12tong 发表于 2015-11-26 17:13:54 |显示全部楼层 |坛友微信交流群
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data old;
input start end;
datalines;
1 1
1 2
1 3
1 4
1 5
1 6
1 7
2 1
2 2
3 1
3 2
3 3
3 4
3 5
;
run;

data new;
set old;
by start;
array x(*) endlag1-endlag3;
endlag1=lag1(end);
endlag2=lag2(end);
endlag3=lag3(end);
if first.start then count=1;
do i=count to dim(x);
x(i)=.;
end;
count+1;
run;
proc print data=new;
run;


上述程序运行结果如下:
aaa.bmp

请问:
变量i的第一个观测值怎么是4,而不是3呢?
求教各位大神!感激不尽!

二维码

扫码加我 拉你入群

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

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

关键词:Count Start Lines array print 程序

回帖推荐

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

do 循环最后i会多1,你把它循环后减掉就行了

吕小布韦 发表于3楼  查看完整内容

do循环是这样的, 以下面程序为例: data a; do a=1 to 3; end; output; run; 最后的结果只有一条, a的值为4. do循环执行到最后, 在最后一次执行的数值上再+1, 然后退出循环.
因为专业所以专业
teqel 发表于 2015-11-27 00:34:18 |显示全部楼层 |坛友微信交流群
do 循环最后i会多1,你把它循环后减掉就行了

使用道具

吕小布韦 发表于 2015-11-27 00:45:48 |显示全部楼层 |坛友微信交流群
do循环是这样的, 以下面程序为例:
data a;
do a=1 to 3;
end;
output;
run;
最后的结果只有一条, a的值为4.
do循环执行到最后, 在最后一次执行的数值上再+1, 然后退出循环.

使用道具

ch03en12tong 发表于 2015-11-27 09:01:28 |显示全部楼层 |坛友微信交流群
吕小布韦 发表于 2015-11-27 00:45
do循环是这样的, 以下面程序为例:
data a;
do a=1 to 3;
原来如此,3Q!

使用道具

ch03en12tong 发表于 2015-11-27 09:02:34 |显示全部楼层 |坛友微信交流群
teqel 发表于 2015-11-27 00:34
do 循环最后i会多1,你把它循环后减掉就行了
3Q!

使用道具

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

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

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

GMT+8, 2024-3-29 04:59