首页 > 解决方案 > 如何解决sas中未声明的数组引用错误?

问题描述

考虑以下代码:

data;
x=var{89,90,78,98,87,786,69,90,92,88};
y=std{89,90,78,98,87,76,69,90,92,88};
run;

我收到以下错误:

1个数据;2 x=var{89,90,78,98,87,786,69,90,92,88}; 错误:引用了未声明的数组:var。错误:变量 var 尚未声明为数组。3 y=std{89,90,78,98,87,76,69,90,92,88}; 错误:引用了未声明的数组:std。错误:变量 std 尚未声明为数组。4运行;

标签: sas

解决方案


在 SAS 中,函数的参数用括号括起来。

尝试

data;
  x = var (89,90,78,98,87,76,69,90,92,88);   * Variance;
  y = std (89,90,78,98,87,76,69,90,92,88);   * Standard deviation;
run;

出现 ERROR: 消息是因为数组下标引用是使用方括号 ( [])、花括号 ( {}) 或圆括号 ( ()) 进行的。声明的数组名可以覆盖函数名,所以要小心。

你的源代码

x = var{89,90,78,98,87,786,69,90,92,88};

实际上是告诉 SAS 你想从一个10 维数组中检索一个值。

如果将 a 添加of到参数列表,函数也可以处理数组。

data x;
    * initialize temporary array of 10 values;
    array m(10) _temporary_ (89,90,78,98,87,76,69,90,92,88);

    * measure the array of values;
    x = var (of m(*));
    y = std (of m(*));
run;

推荐阅读