我试图使用ARRAY
函数对示例数据集进行一些计算。以下是我的代码:
DATA INCHES;
SET SASHELP.FISH;
ARRAY CONVERT[5] HEIGHT WIDTH LENGTH1 LENGTH2 LENGTH3;
DO I = 1 TO 159;
CONVERT[I]=ROUND(CONVERT[I]/2.54);
DROP I;
END;
RUN;
日志中出现错误:
错误:数组下标超出第29行第18行的范围。
感谢您的时间和帮助。
答案 0 :(得分:1)
ARRAY CONVERT[5] HEIGHT WIDTH LENGTH1 LENGTH2 LENGTH3;
表示转换[1]指的是高度...... [2]到宽度等等。如你只提到5个变量,你不能参考[6],因为它不存在。
为什么要使用数组?好吧,你可以做简写符号,比如sigma = sum(of convert [*])
DATA INCHES;
SET SASHELP.FISH;
ARRAY CONVERT[5] HEIGHT WIDTH LENGTH1 LENGTH2 LENGTH3;
DO I = 1 TO 5;
Converted[I]=ROUND(CONVERT[I]/2.54);
DROP I;
END;
RUN;
有关阵列的更多信息,请参阅:https://support.sas.com/resources/papers/97529_Using_Arrays_in_SAS_Programming.pdf