楼主: ch03en12tong
1206 4

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

  • 2关注
  • 1粉丝

大将军

已卖:887份资源

博士生

80%

还不是VIP/贵宾

-

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

楼主
ch03en12tong 发表于 2015-11-26 17:13:54 |AI写论文

+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
拉您进交流群
GMT+8, 2025-12-31 03:08