问题标签 [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 回答
881 浏览

sas - SAS在发送到远程服务器之前用变量的值替换变量

我是 SAS 新手,我正在尝试从远程服务器检索数据。

下面是我试图在远程服务器上执行的代码:

目前,我正在尝试传递var1包含index“查询”需要的字符串的变量。 var1在我的本地计算机上进行评估并包含 value 'abc'

但是,由于var1是在本地评估的,因此尝试引用远程服务器上的变量会产生错误,因为var1那里不存在。

如果我按如下方式运行代码(使用 的显式值'abc'),它运行良好:

我需要动态运行这个“查询”。在尝试执行包含在and中的代码之前,有没有办法强制var1将其替换为实际值(即) ?'abc'rsubmitendrsubmit


更新: 整个代码(我省略了远程服务器特定的代码,但我可以连接没有问题):

使用此代码,该PROC PRINT语句可以正确打印显示var变量及其值的表。该TITLE语句正确地评估了im变量,但var1完全放弃了。

proc export语句会创建正确的 CSV 文件,其中包含每个var变量的预期值。

正如建议的那样,我尝试将var变量声明为 GLOBAL,但这似乎没有任何效果。该代码似乎仍然无法正确地将var1变量传递给远程服务器。

&VAR1同样,如果我用变量的实际字符串值替换,代码工作得很好。

我得到的错误是:

难道是WHERE这种情况下的子句不能接受变量?

0 投票
1 回答
397 浏览

sas - 如何将 %macro 的结果分配给宏变量

我有数据集,其中包含每次观察购买特定产品的概率。这是一个例子:

我需要计算每个产品的中位数。我是这样做的:

此时我可以通过调用获得每个产品的中位数

现在,我要做的最后一件事是将中位数的数字结果分配给宏变量。我对如何做到这一点的最佳猜测是:

但不幸的是,这不起作用。

有人可以帮忙吗?

干杯!

0 投票
3 回答
508 浏览

sas - 存储当前 SAS 标题,临时更改,并在宏结束时恢复

我编写了一个宏 %xl 来从具有特定格式的数据集中打印 Excel 文件。它本身工作正常。但是,宏需要title临时设置。我可以清除宏末尾的标题,但我真的想保留宏前的标题并将其恢复为我宏的最后一步。

如何将当前值捕获title到宏变量中?与带有选项的 %sysfunc(GetOption()) 类似。

谢谢,PT

0 投票
1 回答
170 浏览

date - SAS将日期的字符表示存储在宏变量中

我有一张看起来像这样的桌子

加载此表后,我创建了宏变量,例如

我的问题是dtBourse1,dtBourse2宏变量是值得17433...的(它们作为日期的基础整数值存储为整数)

如何确保宏变量是字符"01FEB2001","02FEB2001"

0 投票
1 回答
508 浏览

sas - SAS LOOP 中的日期函数

我在 EIS 列中有一个日期函数(EX:05FEB2007),我想将年份从 31DEC2012 循环到 31DEC2022,但必须在循环中执行 31DEC2012-EIS 到 31DEC2022-EIS 之类的操作。

0 投票
1 回答
478 浏览

macros - if then else 在sas中循环宏

我正在尝试在 sas 中创建 if else 循环宏来为大型数据集中的变量创建虚拟变量。我使用的代码是:

然后我唤起了宏

它创建了 var age_res1 但条件没有得到暗示

使用 % 符号和 if else do 直接使用条件并且不会产生确切的代码但条件也没有运行

0 投票
1 回答
100 浏览

sas - SAS 宏语言

在 SAS 上,在定义了 Macro Language 之后,例如,

我想用 x 代替 17 到 63,有没有一种简单的方法可以代替键入

0 投票
4 回答
451 浏览

sas - SAS - 从变量创建宏名

我想知道如何从变量中设置宏名称。

像这样:

或者如果这是不可能的:

有任何想法吗?非常感谢。

0 投票
2 回答
661 浏览

sas - 带有 proc sql 的 Sas 宏

我想执行一些回归,我想计算每个变量的非缺失观察数。但我还不知道我将使用哪个变量。我想出了以下不起作用的解决方案。有什么帮助吗?

这里基本上我把我的每一个解释变量都放在变量中。例如 var1 var 2 -> w1 = var1, w2= var2。
请注意,我不知道我提前有多少变量,所以我为十个变量留出了空间。
然后使用 symput 存储潜在变量。

我的下一步是使用我存储的变量执行 proc sql。就好像我的变量少于 10 个一样,它不起作用。

此代码可以使用少于 10 个变量吗?

0 投票
1 回答
460 浏览

sas - 有条件地在 SAS 中打印 TITLE?

我正在制作一个宏,并希望为通过我的宏的不同变量显示不同的标题。

我一直在尝试类似下面的东西:

这行不通。我很可能也不会以适当的方式解决这个问题。我想知道是否有一种简单的方法可以做到这一点,或者每次我想更改我的标题时是否需要手动进行。