小编elf*_*ozo的帖子

SAS循环遍历宏变量列表

首先,我是新手,所以如果这不是一个好问题,我深表歉意。我搜索但没有找到类似的东西。我不确定我的方法是否正确,因此将不胜感激。

我正在为一所有学期的学校处理数据集,例如 2017SP 是 2017 年春季,2017SU 是 2017 年夏季等等。

我有以下程序,我在顶部设置了一个宏变量,然后使用它从各种库和数据集中提取术语。请注意,我有几个数据步骤,只需要运行整个程序超过 5 次。

%let STC_TERM=2017SU;

Data Step; set (library that has data on all terms); if STC_TERM = "&STC_TERM"; *other things I want to do* run; 我的程序中还有其他几个类似的数据步骤,最终为我提供了我想要的输出数据。

现在我需要创建一个数据集,其中包含五个学期的数据,只是彼此附加。

而不是运行我的代码 5 次,只是更改“%let STC_TERM=2017SU;” 到“%let STC_TERM=2016SU;” 对于我想要的每一年,我希望有某种方式提供我的 5 个术语列表,并让 SAS 循环遍历 5 个术语中的每一个并将结果附加在一起。

这五个术语是(2017SU、2016SU、2015SU、2014SU、2013SU)。

有没有办法将此列表提供给我的程序并让它首先在 2017SU 上执行所有数据步骤,然后在下学期执行所有数据步骤,依此类推,并将结果 5 组附加在一起?

我不能把所有感兴趣的术语都放在数据步骤中,因为有些术语之间有重复的数据,需要单独处理。之前尝试将所有术语都放在数据步骤中对我不起作用,所以我想通过每个学期单独运行整个程序来将它们分开。

macros sas

2
推荐指数
1
解决办法
4250
查看次数

标签 统计

macros ×1

sas ×1