可能重复:
SAS proc SQL and arrays
我正在尝试使用SQL在SAS中多次计算多列的比率。例如,我想:
(((start*start_period)+(middle*middle_period)+(end*end_period))/number_days) AS azmonth;
问题在于start_period
,middle_period
,end_period
和number_days
是常数而start
,middle
和{{{ 1}}是一组约7组,需要以相同的方式相乘。除了为每个人输入外,还有其他方法吗?
我知道我可以为Start,Mid和Ends中的每一个做一个单独的等式但是我希望有一种方法可以做到这一点,而无需单独复制/粘贴它们吗?
答案 0 :(得分:0)
在运行PROC SQL之前编写一个宏来为您生成重复代码,然后在proc SQL中的适当位置调用宏。如果您在数据步骤中执行此操作,则替代选项是为开始,中间和结束变量定义3个数组,然后使用do循环重复计算20次。
见here。
This source声称PROC SQL本身没有循环功能 - 我不确定这是否属实。如果是,宏可能是唯一的解决方案。