问题标签 [sas-macro]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1401 浏览

sql - 在 SAS SQL 中使用宏

我想知道我可以将一些代码合并到一个PROC SQL语句中,而不是几个背靠背的SQL语句。

我正在使用宏来计算参与者在研究同意日期的年龄,类似于此处此处提供的内容。我尝试对宏的功能进行故障排除,并使用%sum宏计算了婴儿出生时的总重量(以盎司为单位)(效果很好……)。但是,在尝试计算年龄时,宏不起作用。

但是,如果我在新SQL语句中使用宏,它就可以正常工作。

下面的代码有效:


有没有办法把它合并成一个语句?就像是:

0 投票
1 回答
10597 浏览

sas - 在 SAS 的宏变量中替换文本

我想将宏变量中的任何句点实例更改为下划线。我究竟做错了什么?

输出:

x=0.1

0 投票
2 回答
5845 浏览

sas - 当我将 SAS 数据集导出到 csv 时;它正在修剪字符中的所有前导空格

当我将 SAS 数据集导出到 csv 时;它正在修剪字符中的所有前导空格。请帮助我保留 csv 输出中的所有前导空格。使用的语句是:

所以,有一列包含国家列表,就像

亚洲印度中国等但 csv 文件显示如下:- 亚洲印度中国。

请帮忙。

0 投票
1 回答
736 浏览

sas - SAS:保留具有指定日期间隔的观察结果

我有一个看起来像这样的数据集:

在每个 Unique_ID 中,我只需要保留从第一次观察开始的日期至少相隔 3 个月的观察(我的数据集按 Unique_ID 和日期排序)。例如,在 Unique_ID 1 内,我需要保留距 1995 年 3 月 23 日至少 90 天的下一个观测值,然后是距那一天 90 天的下一个观测值,依此类推。有人可以用宏或某种循环为我指出正确的方向吗?

0 投票
1 回答
2182 浏览

sas - 尝试在 SAS 中创建具有 If-Then 条件的宏

这是我用来创建格式的代码.....

我收到以下错误...代码看起来不错,但我不知道为什么会出现错误...任何帮助???

0 投票
3 回答
1067 浏览

sas - 如何为 sas 数据集中的每个观察执行宏?

这是宏代码......

这是控制数据集的代码,上述宏应通过该代码对数据集的每个观察值运行,并且观察值的值是宏中变量的输入....

0 投票
1 回答
2403 浏览

macros - 如何比较宏中的日期值?

这是我正在运行的宏....

格式控制数据:

如何将 fmt_Start_dt 和 fmt_end_dt 与 sysdate 进行比较?我%If fmt_start_dt<=&sysdate9 and fmt_end_dt>=sysdate9 %then %Do;在代码中尝试了类似的东西,但值没有在循环中拾取....有什么想法吗?提前致谢....

0 投票
1 回答
222 浏览

sas - 需要一个SAS宏程序来避免重复

我有一个数据集,其中需要一些 SAS Datastep 逻辑来填充缺少的列,或者从现有列派生。

数据集看起来更像下面:

我实际上开发了以下程序:

我的要求是我需要编写相同的程序来在 v2 IN cftr等时填充 v13 和 v14;但是 v11 中的边界参数不同(分别用于c, e, g,...),而 v13 和 v14 的类别保持不变。

我想使用 SAS 宏来完成此操作以避免程序重复。你能帮忙解决这个问题吗?

0 投票
1 回答
329 浏览

sas - 如何在给定库的数据集上创建 SAS 代码循环并列出表格以及每个数据集中有多少个 obs?

我正在尝试创建一个以库名称作为输入的宏,该宏在该库中的所有数据集上循环,并列出每个数据集中的数据集名称和 obs 数......有没有办法通过查询字典来获得这个?

0 投票
1 回答
461 浏览

sas - 在SAS中单独解析标题行

我有输入文件,其中第一行有标题信息。(制表符分隔的数据值)。在这些值中,有一个整数值指定应如何解析文件的其余部分。如果该值小于阈值,则应以一种方式解析文件,否则如果该值大于阈值,则应以不同方式解析数据。

在上面的代码中,我定义了一个变量 isNew 并根据条件检查将该变量设置为真/假。在后续的数据块中,我使用这个变量的值来决定文件的解析方式。

示例输入文件是(要检查的值以粗体显示):

FHLMC 更新 #1 20130130 20130306

138788024201321000

140379000000000000

我是 SAS 新手。请问有什么建议吗?