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