问题标签 [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 投票
1 回答
1543 浏览

date - SAS将日期插入宏变量,然后插入数据集中

我的问题对你们中的一些人来说可能很简单,对我来说这是一个很大的障碍:D。

我需要与用户有一个交互窗口,他将能够在其中编写他想要查看数据的日期(用于回归目的的记录)。

在那之后

这当然会将所需的表达式放入宏变量中。尝试将其放入数据集仅在以天为单位在窗口中插入日期(例如 17168)时才带来结果。然而这还不够。

我需要的是能够以 yyyy-mm-dd 或 dd-mm-yyyy 格式插入日期,然后可能将其转换为几天,以便我可以巧妙地使用它。我试了很多次都没有结果。

任何帮助将不胜感激 :)

0 投票
1 回答
257 浏览

sas - 从包含引号、双引号和不匹配引号的宏变量创建数据集变量

总之,我正在努力实现以下目标:

superq 函数在管理不匹配的引号方面做得很好,但是连续的引号 ("") 仍然被解析回变量 X 中的单引号。

这是可寻址的吗?

当前结果:

期望的结果:

0 投票
1 回答
1680 浏览

sas - SAS 宏 if then else

我是 SAS 新手,想创建一个宏程序,为以后的 PROC GPLOT 创建 y 轴值。

用简单的英语来说,这张图上有两个可能的最小值(和最大值)。轴范围取决于哪个最小值最小。否则,SAS 将不会显示轴范围之外的数据。我不希望 SAS 自动为我创建范围。我想自己定义范围。

因此,这是我对以下过程的尝试:a)计算两个最小值,b)比较两者,c)将两者中的较小者存储在一个新的宏变量中。如果我能让这个工作,一个最大的程序将很容易做到。

我有一种感觉,我在语法上做错了什么。任何帮助表示赞赏。

0 投票
1 回答
2201 浏览

sas - symget - 宏变量列表

我正在尝试重现此处找到的代码,特别是在第 7 页:http: //www.nesug.org/proceedings/nesug04/pm/pm13.pdf

但是,我得到的最终结果只是最后一个变量,而不是全部 3:

我想:

为什么这不起作用?

0 投票
2 回答
2771 浏览

csv - 将多个 SAS 数据集批量转换为 CSV 文件

我想将其转换为 CSV 文件的单个文件夹中有大约 720 个 SAS 数据集(配备 720 个 SAS 索引文件“.sas7bdnx”)。我知道如何使用 proc export 一次转换一个,但是有什么有效的方法可以在一个 SAS 程序中进行所有转换?所有数据集都存储在本地 unix 服务器上。

0 投票
3 回答
4039 浏览

sas - Macro variable quoting error with SAS

I am trying to insert a row into a SAS data set using PROC SQL and the values of existing macro variables but I'm getting the standard syntax error message. Here is an example of the code that fails:

Here is the error message:

Running the program without the two character macro variables works fine:

Clearly I'm missing something about macro quoting or something similar. I even tried using temporary macro variables rather than embedding those %STR calls to create a quoted string, but that didn't work either.

0 投票
2 回答
2437 浏览

matrix - SAS-IML 中的循环

我想在 proc iml 中使用宏循环,如下所示:

实际上,我将不得不初始化 50 个矩阵,因此需要一个 do-loop。我无法弄清楚为什么循环不能将 &Tab&i 视为宏变量。我还尝试了使用 substr 连接变量名称的普通(非宏)do-loop 的解决方法,但它也不起作用。我在这里想念什么?

0 投票
2 回答
389 浏览

sas - 如何调用名称在 SAS 中的另一个变量下作为字符串找到的变量?

我有一个变量列出了存储我需要的信息的变量名称。此变量将所有变量名称存储为字符串。我正在尝试创建另一个变量,该变量仅包含名称存储在第一个变量下的变量行中的任何内容。例如,

上面的 var_names 有变量名,我正在尝试创建 new_variable。有任何想法吗?提前致谢。

到目前为止,我一直在努力寻找一个宏解决方案,但我无法让新变量实际上等于该字段,而不仅仅是它应该调用的变量的名称。

我相信这个问题的原因是我不知道如何制作一个由另一个变量定义的宏。即 %let mac = var_names 然后 new_variable = &varnames

0 投票
1 回答
142 浏览

sas - SAS/SAS 宏 - 逐行读取观测值

样本数据:

我的患者有两种情况(条件)之一。

我将不得不根据所有先前患者的分层计算分配的 TG 以及分配的 TG。在上面的示例中,例如,3 名患者存在分配的 TG。

对于第 4 位患者,分配的 TG 将这样计算,

Strata1 的价值是多少。

  1. 如果为 1,计数在 1 时有多少先前患者被分配到分配的 TG T1 计数在 1 时有多少先前患者被分配到分配的 TG T2

  2. 如果为 2,计数在 1 时有多少先前患者被分配到分配的 TG T1 计数在 1 时有多少先前患者被分配到分配的 TG T2

同样,对于 Strata2.The count of all previous patients Allocated TG based on each strata.

毕竟,我将为每个获得一些值。根据输出值,分配数量较少的层,将分配 TG(T1/T2)。

在此之后,它必须计算 PatID5.Again,它必须计算前 4 个患者。

0 投票
3 回答
3093 浏览

sas - 从数据集中的字符串执行 SAS 代码

是否可以读取(并执行)存储在 SAS 数据集中的字符串中的 SAS 代码。

例如,数据集“CODE”包含一个字符串变量,其中包含

我可以做类似的事情吗?

使用 SAS 9.2