【发布时间】:2017-11-27 11:42:51
【问题描述】:
声明一个数组后,我想为其余代码重置它的值。
array cutoffs[4] _temporary_ (1 2 3 4); /*works well*/
... use of the array
array cutoffs[3] _temporary_ (3.5 5 7.5); /*Error*/
... use of the updated array
错误如下:
错误 124-185:变量 cutoffs 已定义。
这个错误很清楚,但我想知道如何在不更改名称的情况下重新分配数组(这将是最乏味的)。
我尝试了一些语法但我自己找不到,我在 google 和 stackoverflow 上都没有看到资源。
我该怎么做?
编辑:主要目的是我创建了一个函数(使用proc fcmp),它将数组作为参数并剪切值(如R的cut函数)。该函数将用于很多列但具有不同的截止值,我不想为每一列都创建一个乏味的数组。
【问题讨论】:
-
来自 R 和其他语言,这令人惊讶地难以发现。
-
您做“为每一列繁琐地创建一个数组”,因为您每次在数据步骤中都有一个
array cutoffs[x] _temporary_ (values)行硬编码。使用不同的名称并不会让它变得更乏味。 -
是的。我可以复制粘贴数组声明和函数,只更改数组和列内的值以应用函数,但现在我每次都必须更改数组的名称。我并不是说我使用最好的方法,因为我是一个不到一个月前开始 SAS 的菜鸟,但我可以向你保证,这非常乏味。
-
我编辑了我的答案以提出另一种方法。
-
不确定 FCMP 是否是解决此问题的正确方法。您没有在此处发布它,但您之前询问过您的截止功能。为这个应用程序创建一个宏可能会更容易。或者提前将截止标准设置为格式,并在代码中使用格式而不是值列表。