2013-10-08 38 views
0
data work.totalsales; 
set work.monthlysales(keep = year product sales); 
retain monthsales {12}; 
array monthsales {12}; 
do i = 1 to 12; 
monthsales{i} = sales; 
end; 
count + 1; 
monthsales{count} = sales; 
run; 

我提交这些代码。但它似乎有语法问题。但是哪里?这些sas代码中的语法错误是什么

+0

你想完成什么?你的代码还不清楚。 – DomPazz

+0

其实它来自我在书中看到的多项选择问题。答案是“由于语法错误,程序无法执行”。我只是不明白为什么。 – zhuoer

回答

1

语法问题是retain语句中的数组样式名称。

运行时错误可能,因为count未初始化。如果“monthlysales”中有超过12条记录,则会在第13条记录中出现“数组越界”错误。

+0

为什么我们需要初始化'count'?在开始时没有设置为零? – zhuoer

+0

技术上它缺失。问题是您的count变量可能会超过12(当输入数据集有大于12条记录时),当您尝试访问只有12个元素的数组中的13号槽时会导致运行时错误。 – DomPazz