SAS MACROs与SAS程序的独特性和优势是什么?如果宏的目的是减少为不同输入重复任务的努力,那么这是否也可以通过写成程序来完成?SAS基本问题:为什么MACRO?
回答
SAS用户做有能力创建自己的SAS PROC的。他们必须许可SAS/Toolkit和C语言或其他语言的代码。
SAS有许多不同的部分。宏是(或曾经是)SAS中最多(也可能是唯一)的通用工具,它可以将(几乎任何但不是全部)部件放在一起。鉴于宏观(语言)是多么原始和奇怪,这有点有趣,但却是真实的。
这就好比问我们为什么当我们有UNIX中可用的所有程序时,我们有Perl,Python,ksh,bash等等。宏是脚本语言,它为用户提供了很大的灵活性并可以控制他们希望SAS执行的操作。您也可以轻松生成动态代码。现有的procs在他们可以作为输入以及作为输出获得的东西方面相当严格。 Proc FCMP已经向用户定义的函数打开了数据步骤,但这仍然无法替代您使用宏语言获得的灵活性。
+1提到SAS宏代码可以动态编写代码。这在我看来是编写宏的主要原因。 – 2010-10-22 18:44:44
您可以在没有授权工具包的情况下创建自定义宏,并且我记得很多人似乎都使用SAS Toolkit进行自定义过程。
宏帮助运行的程序反复使用自定义参数和是无价的变量操纵和创造
特效一般是输出设备。宏也可以帮助重复数据步骤操作。
这里是一些代码
也可以使用键盘快捷键。我发现他们更方便 - 调用特效:) – 2012-06-08 11:20:00
有许多用途和宏的高级功能,但我主要就使用它们,所以我可以尝试留真实的DRY Princicple。如果您发现自己处于经常重复代码块的情况,则可能需要执行此操作。例如,我总是将数据集导出为excel。如果我最终做了在我的代码几次,我只是把代码中的宏:
%macro export_set_excel(data,path,filename,sheetname);
PROC EXPORT DATA= &data. OUTFILE= "&path.&data." DBMS=EXCEL REPLACE;
SHEET="&sheetname.";
NEWFILE=YES;
RUN;
%mend export_set_excel;
然后当我在我的代码一起去。我做一个数据集,我要出口的话,我可以只写:
%export_set_excel (data=MyDataSet, path=C:\Temp\, filename=mydata.xlsx, sheetname=exportedData);
这是一个简单的线我必须写,而不必写7个或8行30次在一个文件中30次。它可以更容易地追踪错误,如果我想改变一些关于如何导出的内容,我只需要在一个地方进行更改。
我使用它的不仅仅是导出,而是应该给你一个大致的想法。
如果您熟悉其他语言,您会发现sas宏语言很缺乏和繁琐,但它绝对比没有好。
大多数SAS程序对数据执行特定的操作。宏允许对SAS代码块进行运行时条件处理,例如使用DO循环在不同数据集上重复进行过程调用,或根据文件是否存在来决定运行数据步。虽然代码对于新手来说看起来笨重,但是一旦学习BASE SAS,拾取起来实际上相对容易,因为语法几乎完全相同(对于风味来说,%s和@s大致相同)。
- 1. SAS MACRO循环
- 2. SAS Do Over Macro - Backwards
- 3. 解决SAS MACRO参数
- 4. 这个SAS代码有什么问题?
- 5. C# - 基本问题:什么是'?'?
- 6. 为什么这个行为与MACRO?
- 7. 基本的LinqToSql问题:为什么不能编译?
- 8. 使用SAS Macro创建间隔
- 9. 扩展SAS MACRO到多个字段
- 10. 问题SAS
- 11. 这个基本的shell脚本出口有什么问题
- 12. 脚本有什么问题?
- 13. RelativeLayout:基线对齐有什么问题?
- 14. SAS:启动问题
- 15. SAS:引用问题
- 16. Perl基本问题
- 17. EJB基本问题
- 18. SQLAlchemy基本问题
- 19. hoverIntent基本问题?
- 20. 基本HTACCESS问题
- 21. 基本Subversion问题
- 22. 基本URL问题
- 23. 基本gradle问题
- 24. 基本JSON问题
- 25. 基本DataGridView问题
- 26. jQuery基本问题
- 27. 基本Android问题
- 28. 基本Flex问题
- 29. 基本xmlHttp问题
- 30. 基本phpmailer问题
感谢您关于SAS/Toolkit的提醒 - 我已经忘记了该产品。 – cmjohns 2010-10-21 16:58:06