0

可能重复:
SAS proc SQL 和数组

我正在尝试使用 SQL 在 SAS 中多次计算多列的比率。例如,我想要:

(((start*start_period)+(middle*middle_period)+(end*end_period))/number_days) AS azmonth;

问题在于,虽然start_periodmiddle_periodend_periodnumber_days是常数,而startmiddleend是一组需要以相同方式相乘的大约 7 个集合。除了为每个人打出来之外,还有其他方法吗?

  1. Start_per Mid_per End_per Start1....Start20 Mid1...Mid20 End1...End20
  2. .3-------------.6------------.1-----10--------15----- -26--------45-----61-----08

我知道我可以为每个开始、中间和结束做一个单独的等式,但我希望有一种方法可以做到,而不必单独复制/粘贴编辑它们?

4

1 回答 1

0

在运行 PROC SQL 之前编写一个宏来为您生成重复代码,然后在 proc SQL 中的适当位置调用该宏。如果您在数据步骤中执行此操作,另一种选择是为开始、中间和结束变量定义 3 个数组,然后使用 do 循环重复计算 20 次。

如此处所见。

该消息来源声称 PROC SQL 本身没有循环功能 - 我不确定这是否属实。如果是这样,宏可能是唯一的解决方案。

于 2012-07-08T19:15:00.777 回答