全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1995 8
2015-02-07
3.png
2.png
1.png
二维码

扫码加我 拉你入群

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

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

全部回复
2015-2-7 11:43:48
array定义不对
二维码

扫码加我 拉你入群

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

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

2015-2-12 19:46:00
teqel 发表于 2015-2-7 11:43
array定义不对
您好!感谢您,但这条语句我也用到过其他地方,没见到有提示错误啊。烦请您指点!
二维码

扫码加我 拉你入群

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

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

2015-2-12 22:36:25
array y(14) ys2000-y2013;
这里的y(14)指y(1),y(2),y(3),...y(14),所以接下来的do循环中定义t=2000 to 2013会下标越界,
do t=2000 to 2013;
if t=obs then y(t)=1;
以上这样写,当obs=2000时,y(t)=y(2000),你定义的数组最大的成员为y(14),所以肯定出界。
应改为:
do t=1 to 14;
if y(t)=obs then y(t)=1;else y(t)=0;
output;
end;
run;
二维码

扫码加我 拉你入群

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

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

2015-2-13 06:06:32
ys2000-y2013 is abbreviation for ys2000  ys2001  ys2002 ...  y2013. There are 14 of them, so y(15) is long and y(13) is short. If you don't like counting, you can just use y{*} , in your case:
array y{*}  ys2000-y2013;
二维码

扫码加我 拉你入群

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

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

2015-2-13 08:54:32
程序可以用隐式数组来替代,即在声明数组时不指定维度。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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