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

sas - SAS:Proc Olap。非nway聚合

我想做Rolap-cube

创建表后,我使用宏生成在proc olap.

并看到这样的警告和错误:

怎么了?(我没有指定数据集,因为我有很多表,我想在其中使用Rolap-cube

加法:如果我有这样的尺寸:

D是最小的级别,它有两个层次结构:D belond to B belong to AD belong to C

如果我指定具有级别的聚合表:
1) A B D
2) A B
3) A
4) C D
5) C
6)none

然后sas对我说,我没有指定输入数据集。(聚合表之一)。

但是这 6 个聚合涵盖了所有可能的去中心化(没有像A B C Dor那样的交叉覆盖去中心化A C D

0 投票
2 回答
8210 浏览

import - SAS宏做循环——导入多个平面文件

我有一个包含 17 个平面文件的列表,我正在尝试将它们导入到不同的数据集中。所有文件都有相同的数据步骤,所以我正在尝试编写一个 do while 循环来导入所有文件。

我一直试图从这里改编一些代码但没有成功: http: //www.sas.com/offices/europe/uk/support/sas-hints-tips/tips-enterprise-csv.html

http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#a000543785.htm

我收到一个错误,上面写着%do statement is not valid in open code. 这是我的代码:

%let pathin = &path&n我已经在 do-while 循环之外测试了数据步骤,并且使用代码一次可以正常处理 1 个文件。代码仍然为第一个数据集编写数据文件;但是,我需要能够遍历所有文件并且不知道如何。对不起,如果这是一个新手问题;我只是在学习SAS。

谢谢,-亚历克斯

0 投票
2 回答
2347 浏览

sas - SAS比较两个文本文件(Unix / Windows)

我需要比较两个文本文件(在不同的目录中),看看它们是否不同(二进制结果很好)。给定如下数据集,这可能在数据步中吗?

或者,宏代码会很好!校验和是一种可能性,我需要代码在 windows 和 unix 中运行。

0 投票
2 回答
2812 浏览

sas - SAS通过变量传递列名

我需要通过变量传递列名。

其中“a1234”是我要使用的列名(存在于文件中);而不是字符串 a1234。

我想这样做的原因是在脚本顶部定义了所有参数,这使得代码更干净(在这种情况下)。

提前感谢您的任何反馈。

0 投票
2 回答
1418 浏览

sas - 带有宏的分类变量

我正在尝试在 sas 中创建分类变量。我编写了以下宏,但在尝试运行时出现错误:“无效的符号变量名 xxx”。我不确定这是否是实现我目标的正确方法。

这是我的代码:

0 投票
2 回答
10325 浏览

sas - 使用 SAS 删除文本文件

我正在寻找一段代码,最好是独立于操作系统和基于宏的,用于删除文本文件(或任何文件)

0 投票
1 回答
2079 浏览

sas - 获取正在运行的 SAS 程序的名称

是否有任何通用建议来识别正在执行的 SAS 代码/程序?

我的代码将在通用宏中执行,因此可以在存储过程、另一个宏、客户端 SAS 程序甚至是使用 IOM 通过中间层生成的 SAS 代码中调用。我想要可能的最高级别标识符..(如果再次运行相同的程序会返回相同结果的东西 - 所以进程 ID 不会有帮助)。

环境不是windows,所以这段代码没有帮助:

此外,宏不一定是第一个被调用的程序(如果它甚至是一个程序) - 所以这段代码也没有帮助:

0 投票
2 回答
376 浏览

sas - sas宏调用宏

嗨,我有一个程序可以使用一个宏来调用另一个宏。

我有两个月(jun12 和 jul12),每个月都有两个部分(1 和 2),我想做一个循环,我构造了一个名为“Loop”的宏,在其中,我构造了一个数组,并使用了 Do comment do调用宏“尝试”。

好像行不通。有人可以帮我吗?谢谢!

0 投票
1 回答
2839 浏览

sas - 在 SAS 9.2 中,如何清除 URL 文件引用?

我写了一个类似这样的SAS宏......

它工作一次,但每当我再次运行它时,我都会收到日志消息:

如果我尝试filename myfile CLEARfilename myfile NULL

此外,如果我使用多个 URL 运行它,则只会创建第一个数据集,而其他数据集是它的精确副本。

我无权访问 SAS 配置文件。我必须在没有任何管理权限的情况下解决这个问题。

谢谢。

0 投票
3 回答
686 浏览

sas - 如何重复调用 SAS 宏,其中第二个参数是第一个参数 - 和 . 删除?

我有一个需要两个参数的宏——一个可以包含破折号和句点的字符串,以及一个相同字符串的清理版本,其中任何破折号和句点都被下划线替换。

以下作品:

%let foo = abc.def;

%mymacro(firstpar = &foo, secondpar=%sysfunc(translate(&foo,"__","-.")));

%let foo = abc-def;

%mymacro(firstpar = &foo, secondpar=%sysfunc(translate(&foo,"__","-.")));

...但是我如何遍历一长串此类变量?是否有一些标准的习惯用法可以一次将列表的元素分配给一个占位符变量然后评估命令,或者直接将它们替换为命令字符串(但在我明确要求之前不评估它)?

我尝试使用%DO_WHILE宏库,只要&foos 不包含标点符号,它就可以很好地工作。如果他们这样做了,它就会失败,并且我尝试过的任何引用组合都不能让它发挥作用。

我的实际宏太长且令人费解,无法在此处发布。希望这个一般性问题足够清楚,可以回答:

“重复调用一个宏的推荐策略是什么,它的一次性调用看起来像%mymacro(firstpar = &foo, secondpar=%sysfunc(translate(&foo,"__","-.")));,并且你有一个大的值列表foo?”

或者换一种说法:“SAS 中最接近 Rparse()deparse()功能的东西是什么?”