全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2617 2
2010-06-08
我的程序如下:
data testb;
     infile 'D:\TDDOWNLOAD\sasdata\testa.txt';
           input name $ 1-6 weight1 8-11 weight2 13-16;
                 array wt(2) weight1 weight2;
             array wgtdiff(1);
             do i=1 to 2;
           wgtdiff(i)=wt(i)-wt(i+1);
end;

报错:ERROR: 在行 153 列 34 处数组下标越界。
RULE:     ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
1         Alicia 69.6 68.9  17
name=Alicia weight1=69.6 weight2=68.9 wgtdiff1=0.7 i=2 _ERROR_=1 _N_=1

请高手指点下为什么?
二维码

扫码加我 拉你入群

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

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

全部回复
2010-6-8 23:14:31
因为weight1和weight2只有两个变量所以定义weight1和weight2的差值wgtdiff的时候只有一个,语句:do i=1 to 2应改为do i=1就对了!
二维码

扫码加我 拉你入群

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

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

2010-6-9 08:05:34
如果只是weight1和weight2两个变量求差,没有必要用数组。

data testb;
     infile 'D:\TDDOWNLOAD\sasdata\testa.txt';
           input name $ 1-6 weight1 8-11 weight2 13-16;
           wgtdiff=weight1-weight2;
run;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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