Hôm nay chúng ta thảo luận về Macro SAS dành cho người mới bắt đầu và cách macro SAS giúp cuộc sống của chúng ta dễ dàng hơn bằng cách giảm bớt sự dư thừa hoặc lặp lại của một đoạn mã. SAS Macro cung cấp một cách đáng kinh ngạc để thực hiện một quy trình dễ dàng và tự động.
Các bài viết liên quan:
Ở đây, chúng ta sẽ thấy các Biến Macro SAS khác nhau, các chức năng của Macro trong Ngôn ngữ lập trình SAS . Hơn nữa, chúng ta tìm hiểu các thành phần của SAS Macro Code và một số lợi ích của SAS Macro
Hãy xem cách hoạt động của SAS Macro.
SAS Macro là gì?
Về cơ bản, macro giúp sử dụng lại mã ở những nơi khác nhau nhiều lần mà không cần phải gõ lại toàn bộ mã. Điều này không chỉ tiết kiệm thời gian mà còn dẫn đến mã không bị lỗi.
Hãy để chúng tôi hiểu điều này với một ví dụ:
proc print data=Policysnapshot; where policydate='09Sep14'd; title "Below are the policy detail for 09-Sep-14"; Run;
Mã SAS ở trên được viết để trích xuất chi tiết cấp chính sách cho ngày 09-ngày 14 tháng 9 và chúng tôi nói rằng người dùng cần chạy mã này hàng ngày sau khi thay đổi ngày (ở cả hai nơi) thành ngày hiện tại.
Bây giờ, chúng ta hãy xem cùng một đoạn mã bằng cách sử dụng macro SAS.
Proc Print Data=Sales.Policysnapshot; Where policydate="&sysdate9"d; Title "Below are the policy detail for %sysdate9"; Run;
Trong trường hợp này, người dùng không cần cung cấp giá trị cho ngày hiện tại. Mã sẽ tự động chọn ngày hiện tại từ hệ thống.
Xem thêm Phương thức Swift4
Lợi ích của việc sử dụng SAS Macro
Macro SAS cho phép chúng tôi: –
- Làm cho công việc của chúng tôi dễ dàng hơn bằng cách sử dụng lại nhiều lần mã tương tự sau khi xác định mã đó.
- Thực hiện các thay đổi đối với một biến ở một nơi duy nhất và phản ánh chúng ở nhiều vị trí.
- Dữ liệu do chương trình của bạn điều khiển, tức là cho phép SAS quyết định phải làm gì dựa trên các giá trị dữ liệu thực tế
Trên hết, nó giúp giảm bớt những nỗ lực cần thiết để đọc và viết Mã SAS.
Các thành phần của mã Macro SAS
Mã SAS Macro có hai thành phần: Macro và các biến Macro. Trong một chương trình SAS, chúng được gọi khác nhau là: –
- & Tên đề cập đến Biến Macro
- % Tên đề cập đến Macro
Xem thêm Template kế thừa trong Laravel
Biến Macro SAS
Một biến macro cũng giống như một biến tiêu chuẩn, ngoại trừ giá trị của nó không phải là một tập dữ liệu và chỉ có một giá trị ký tự duy nhất. Giá trị của một biến macro có thể là một tên biến, một chữ số hoặc bất kỳ văn bản nào bạn muốn thay thế trong chương trình của mình.
Phạm vi của một biến Macro có thể là cục bộ hoặc toàn cục, tùy thuộc vào cách chúng ta đã định nghĩa nó như thế nào. Nếu nó được xác định bên trong một chương trình macro, phạm vi là cục bộ (chỉ có sẵn cho mã macro đó).
Tuy nhiên, nếu chúng ta đã định nghĩa nó bên ngoài (trong phần thân chính), thì chúng ta có thể sử dụng nó ở bất cứ đâu trong chương trình SAS.
Chúng tôi sử dụng câu lệnh% LET để tạo và gán một giá trị cho các biến macro.
% LET <Tên biến Macro> = Giá trị;
Giá trị của biến macro trong câu lệnh% Let có thể là một chuỗi bất kỳ và nó có các đặc điểm sau: –
- Nó có thể có độ dài bất kỳ từ 0 đến 65.534 ký tự
- Giá trị số cũng được lưu trữ dưới dạng chuỗi ký tự
- Các biểu thức toán học không được đánh giá
- Dấu ngoặc kép cũng có thể được lưu trữ như một phần của giá trị
- Các khoảng trống ở đầu và cuối được xóa trước khi chuyển nhượng
SAS Các biến macro được tham chiếu bằng cách sử dụng dấu và (&) theo sau là tên biến macro.
& <Tên biến macro>
Ví dụ: –
Chúng ta cũng có thể khai báo nhiều biến macro và sử dụng chúng ở những nơi khác nhau trong Mã SAS. Biến macro không phân giải khi chúng truy cập trong dấu ngoặc kép. Do đó, chúng ta nên sử dụng dấu ngoặc kép để tham chiếu chúng.
macro-variable-1 <… macro-variable-n>
là tên của một hoặc nhiều biến macro SAS.
Câu lệnh% GLOBAL tạo một hoặc nhiều biến macro toàn cục và gán giá trị null cho các biến. Các biến macro toàn cục là các biến có sẵn trong toàn bộ quá trình thực thi của phiên hoặc công việc SAS.
Một biến macro được tạo bằng câu lệnh% GLOBAL có giá trị null cho đến khi bạn gán cho nó một số giá trị khác. Nếu một biến macro toàn cục đã tồn tại và bạn chỉ định biến đó trong câu lệnh% GLOBAL, thì giá trị hiện có vẫn không thay đổi.
Các biến Macro cục bộ của SAS
Cú pháp của biến Macro cục bộ trong Lập trình SAS:
% LOCAL macro-variable-1 <… macro-variable-n> ; |
macro-variable-1 <… macro-variable-n> là tên của một hoặc nhiều biến macro
Câu lệnh% LOCAL tạo một hoặc nhiều biến macro cục bộ. Một biến macro được tạo bằng% LOCAL có giá trị null cho đến khi bạn gán cho nó một số giá trị khác. Các biến macro cục bộ là các biến chỉ có sẵn trong quá trình thực thi macro mà chúng được xác định.
Sử dụng câu lệnh% LOCAL để đảm bảo rằng các biến macro được tạo trước đó trong chương trình không vô tình bị thay đổi bởi các giá trị được gán cho các biến có cùng tên trong macro hiện tại.
Nếu một biến macro cục bộ đã tồn tại và bạn chỉ định biến đó trong câu lệnh% LOCAL, thì giá trị hiện có sẽ không thay đổi.
So sánh – Biến toàn cục so với Biến cục bộ
- Cả câu lệnh% LOCAL và câu lệnh% GLOBAL đều tạo ra các biến macro với một phạm vi cụ thể. Tuy nhiên, câu lệnh% LOCAL tạo ra các biến vĩ mô cục bộ chỉ tồn tại trong quá trình thực thi macro có chứa biến đó và câu lệnh% GLOBAL tạo ra các biến vĩ mô toàn cầu tồn tại trong khoảng thời gian của phiên hoặc công việc.
- Nếu bạn xác định một biến macro cục bộ và một biến macro toàn cục có cùng tên, thì cơ sở macro sẽ sử dụng giá trị của biến cục bộ trong quá trình thực thi macro có chứa biến cục bộ đó. Khi macro chứa biến cục bộ không thực thi, cơ sở macro sẽ sử dụng giá trị của biến toàn cục.
Chức năng của Macro SAS
Các hàm SAS Macro này có cú pháp tương tự, so với các hàm đối ứng của chúng trong các bước dữ liệu và chúng cũng trả về kết quả theo cách tương tự.
% UPCASE () Hàm
Chúng tôi sử dụng hàm này để chuyển đổi trường hợp các chữ cái thành chữ hoa:
Cú pháp : -% UPCASE (Đối số)
Ví dụ :
%Let heading=this is detail of country; Proc Print Data=Orion.Country; Title %UPCASE(&heading); Run;
Nó sẽ in tiêu đề là “ĐÂY LÀ CHI TIẾT CỦA QUỐC GIA”.
Hàm% SUBSTR ()
Hàm này trả về số ký tự đã cho từ vị trí đã chỉ định.
Cú pháp : -% SUBSTR (đối số, vị trí [, số ký tự])
Nếu một số ký tự không được cung cấp, hàm% SUBSTR sẽ trả về các ký tự từ vị trí đã cho cho đến cuối chuỗi.
Ví dụ :
%Let abc=this is detail of country; %LET def=%SUBSTR(&abc,19,7); Proc Print Data=Orion.Country; Title %Upcase(&def); Run;
Đây là tất cả trong Hướng dẫn Macro của SAS. Hy vọng bạn thích giải thích của chúng tôi.
Bản tóm tắt
Do đó, trong hướng dẫn SAS Macros này. Tôi hy vọng bạn đã học được một số cách mới để thao tác dữ liệu trong SAS. Bây giờ bạn sẽ có thể tiết kiệm rất nhiều thời gian bằng cách kết hợp SAS Macro trong chương trình của bạn. Hãy theo dõi để biết thêm nhiều điều thú vị như vậy tại SAS.
Xem thêm Tìm hiểu về biến trong SAS