Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SAS数组下标超出范围_Sas - Fatal编程技术网

SAS数组下标超出范围

SAS数组下标超出范围,sas,Sas,我获取的数组下标超出范围错误: ERROR: Array subscript out of range at line 408 column 169. SYM_ROOT=FSV DATE=. TIME_M=. BID=. BIDSIZ=. ASK=. ASKSIZ=. EXN=. FIRST.SYM_ROOT=1 LAST.SYM_ROOT=1 FIRST.DATE=1 LAST.DATE=1 FIRST.TIME_M=1 LAST.TIME_M=1 nexb1=. nexb2=. nexb3=

我获取的数组下标超出范围错误:

ERROR: Array subscript out of range at line 408 column 169.
SYM_ROOT=FSV DATE=. TIME_M=. BID=. BIDSIZ=. ASK=. ASKSIZ=. EXN=.
FIRST.SYM_ROOT=1 LAST.SYM_ROOT=1 FIRST.DATE=1 LAST.DATE=1 FIRST.TIME_M=1
LAST.TIME_M=1 nexb1=. nexb2=. nexb3=. nexb4=. nexb5=. nexb6=. nexb7=. nexb8=.
nexb9=. nexb10=. nexb11=. nexb12=. nexb13=. nexb14=. nexb15=. nexb16=. nexb17=.
nexo1=. nexo2=. nexo3=. nexo4=. nexo5=. nexo6=. nexo7=. nexo8=. nexo9=. nexo10=.
nexo11=. nexo12=. nexo13=. nexo14=. nexo15=. nexo16=. nexo17=. sexb1=. sexb2=.
sexb3=. sexb4=. sexb5=. sexb6=. sexb7=. sexb8=. sexb9=. sexb10=. sexb11=.
sexb12=. sexb13=. sexb14=. sexb15=. sexb16=. sexb17=. sexo1=. sexo2=. sexo3=.
sexo4=. sexo5=. sexo6=. sexo7=. sexo8=. sexo9=. sexo10=. sexo11=. sexo12=.
sexo13=. sexo14=. sexo15=. sexo16=. sexo17=. _I_=. i=18 BB=. BO=. MIDPRICE=.
BBSize=. BOSize=. NUMEX=. _ERROR_=1 _N_=6417740
但是,我不确定发生了什么,因为代码以前在不同的数据集上工作过

我能想到的唯一一件事是,因为我遇到问题的数据集是原始数据集(有效)的子集,它可能没有完整的exn范围(我使用一个名为exn的变量作为数组的索引)

我将数组定义为:

array nexb nexb:; array nexo nexo:; array sexb sexb:; array sexo sexo:;
我所说的变量称为exn,用于引用数组:

nexb(exn)=bid;nexo(exn)=ofr;sexb(exn)=bidsiz;sexo(exn)=ofrsiz;
阵列按以下方式初始化:

do i=1 to 17;
  nexb(i)=.; nexo(i)=.; sexb(i)=.; sexo(i)=.;
end;

最初,exn的跨度为1到17。现在我认为数据集中可能缺少介于两者之间的一些数字。但为什么这是一个问题?它们无论如何都是初始化的

不能将缺少的值用作数组的索引。您的日志显示缺少EXN。

如果您使用EXN作为索引,我会认为它也会出现在错误消息中。不是。你应该发布日志中提到的代码行,第408行-它准确地告诉你索引有问题的地方。我的代码中甚至没有第408行…它在集群上运行,我想这就是你为什么这么做的原因,看看你的日志,它有行号。阅读你的日志。你需要发布日志。日志中有行号,而不是代码。