【发布时间】:2015-11-25 02:35:15
【问题描述】:
所以我创建了一个宏,它工作得很好。在宏中,我设置了观察开始读取的位置,以及它将读取多少个观察。
但是,在我的 proc print 调用中,我不能简单地这样做:
(firstobs=&start obs=&obs)
因为虽然 firstobs 会正确地从我想要的地方开始,但 obs 不配合,因为它必须比 firstobs 大。例如,
%testmacro(start=5, obs=3)
不起作用,因为它正在读取前 3 个观察值,但试图从观察值 5 开始。我想要宏做的是,从观察值 5 开始,然后读取下一个 3。所以我做了什么这是:
(firstobs=&start obs=%eval((&obs-1)+&start))
当我使用它时,它工作得非常好。但我只是想知道是否有更简单的方法可以做到这一点,而不必使用整个 %eval... 调用。是否有一个简单的调用,例如 numberofobservations=...?
【问题讨论】: