/ / 3 macro SAS hàng đầu để tự động hóa công việc của bạn

3 macro SAS hàng đầu để tự động hóa công việc của bạn

Là một ngôn ngữ xử lý và xử lý dữ liệu, SAS cung cấp cho bạn nhiều quy trình tập trung vào dữ liệu, hiệu quả để xử lý lượng lớn dữ liệu.

Các chương trình SAS với các khối mã lặp đi lặp lại có xu hướng trở nên dài dòng và nặng về mã; thêm vào đó, việc viết kịch bản thủ công có thể trở nên tốn công sức và đơn điệu, làm tăng tỷ lệ sai sót của bạn.

Vì vậy, làm thế nào bạn có thể tự động hóa các phần mã để thực hiện các tác vụ lặp đi lặp lại?

Đây là lúc các macro SAS phát huy tác dụng. Đọc tiếp để tìm hiểu macro SAS là gì và cách chúng cải thiện hiệu quả SAS.

Macro SAS là gì?

Macro là các biến mà bạn có thể sử dụng trong mã SAS để tự động hóa các tác vụ lặp đi lặp lại. Khi sử dụng macro làm phần tử mã hóa, các biến macro lưu trữ các giá trị ký tự và số động, bao gồm tên, chữ cái và số.

Mã macro bao gồm hai khối xây dựng, chính macro và biến macro. Các chương trình SAS yêu cầu bạn phân biệt giữa chúng bằng cách sử dụng &% dấu hiệu.

Ví dụ, nếu bạn viết &Nhân viên, bạn đang gọi biến macro. Nhưng, nếu bạn viết %Nhân viênbạn đang xác định biến macro.

Tại sao sử dụng Macro SAS?

Có một số lợi ích khi sử dụng macro trong mã SAS của bạn. Họ có thể giúp bạn:

  1. Thay thế các dòng mã lặp lại bằng một biến duy nhất

  2. Cam kết các thay đổi cho một biến và phản ánh nó trong nhiều phần trong chương trình

  3. Nhập các giá trị dữ liệu thời gian thực để làm cho chương trình của bạn theo hướng dữ liệu và hiệu quả

Các loại Macro SAS

Có một số macro tích hợp sẵn mà bạn sẽ thường sử dụng trong SAS. Chúng sẽ tỏ ra khá có giá trị cho các ứng dụng thời gian thực trên cơ sở trường hợp sử dụng.

1.% Let Statement

Bạn có thể dùng %để cho macro cho bất kỳ giá trị chuỗi hoặc số nào. Nó có các đặc điểm sau:

● Phạm vi của biến trong khoảng từ 0 – 65,534

● Các biểu thức toán học trong một biến macro không được đánh giá

● Lưu trữ tự do các giá trị số trong một chuỗi

● Bạn có thể giữ dấu ngoặc kép như một phần của giá trị ký tự

● Bất kỳ khoảng trống nào có đầu hoặc cuối đều bị xóa trước khi chuyển nhượng

Để khai báo một %để cho macro, hãy sử dụng tên biến macro trước dấu và (&).

Đây là cú pháp chung %để cho macro:

%let macro variable = value

Điều kiện tiên quyết là tên biến macro phải không có bất kỳ khoảng trắng nào, độ dài giới hạn trong 32 ký tự và không được bắt đầu bằng giá trị số.

Đây là một ví dụ về cách bạn có thể sử dụng %để cho câu lệnh ở dạng đơn giản nhất:

%let age = 10;

data sample;
input name $ age sex $;
cards
;
Rob 30 M
Alan 10 M
Jerry 20 M
Monica 35 F
;
run;

proc sort data = sample (where = (age NE &age.));
by age;
run;

Đây là cách mã trông như thế nào trong môi trường SAS:


Giao diện SAS

Trong đầu ra, các giá trị trong tuổi cột không bằng 10 được lọc ngay sau khi điều kiện được đáp ứng. Biến macro được xác định bên cạnh %để cho câu lệnh, được sử dụng để cân bằng các giá trị trong điều kiện.

Nếu bạn muốn thực thi các giá trị sau khi thay đổi điều kiện bộ lọc, tất cả những gì bạn phải làm là thay đổi giá trị từ 10 thành số mong muốn trong %để cho tuyên bố. Nó đơn giản mà; chạy lại mã để xem kết quả mới.

Đây là kết quả đầu ra trông như thế nào khi mã được thực thi:


Đầu ra SAS

2. Tham số Macro

Các tham số macro khá hữu ích khi bạn muốn xác định trực tiếp các biến và các bước trong một tập hợp các câu lệnh macro. Toàn bộ khối câu lệnh có thể được sử dụng lại để thực hiện các chức năng khác nhau khi cần thiết.

Ví dụ: giả sử bạn muốn sắp xếp một tập dữ liệu hiện có dựa trên các tiêu chí nhất định.

data test_example;
input ID $ name $ age;
cards;
001 John 20
002 Jack 30
003 Ron 15
001 Jack 30
005 Aon 18
;
run;

%macro sorting (in_ds= , sort_var =, out_ds=);

proc sort data = &in_ds nodupkey out = &out_ds;
by &sort_var;
run;
%mend;

Trong khối mã đầu tiên, hãy tạo một tập dữ liệu với một số giá trị giả. Khi dữ liệu có sẵn, bạn có thể tạo một câu lệnh macro trong % macrosửa chữa% các câu lệnh.

bên trong % macro bạn có thể xác định tên của macro, cùng với các biến cục bộ, sẽ giữ các giá trị nhất định khi macro được gọi.

Cuối cùng, kết thúc khối mã macro bằng sửa chữa% tuyên bố.

Để gọi macro, hãy chuyển câu lệnh macro theo cách sau:

%sorting (in_ds= test_example, sort_var = name , out_ds=test_example_new);

Ở đâu:

  • % sắp xếp: tên biến macro được tạo trong câu lệnh macro
  • in_ds: tên tập dữ liệu được sắp xếp
  • sort_var: biến để sử dụng trong khi sắp xếp tập dữ liệu
  • out_ds: tên của tập dữ liệu kết quả, sẽ được tạo sau khi tập dữ liệu được sắp xếp

Có liên quan: Macro Microsoft Excel tuyệt vời để sắp xếp dữ liệu

3. Sử dụng proc sql làm Biến Macro

SQL là một trong những ngôn ngữ được sử dụng phổ biến nhất trong SAS để thao tác dữ liệu và xử lý dữ liệu. Đã nói điều này, bắt buộc phải có khả năng lưu trữ các giá trị trong một biến SQL để sử dụng thêm. Macro và SQL là một sự kết hợp mạnh mẽ và việc sử dụng chúng cùng nhau có thể đi được một chặng đường dài.

Ví dụ: nếu bạn có một danh sách các giá trị mà bạn muốn lưu trữ trong một biến macro, bạn có thể sử dụng câu lệnh Proc SQL để tạo một biến macro.

Để làm như vậy, hãy làm theo ví dụ sau:

proc sql;
select variable_name into: macro_variable_name separated by ','
from table_name;

Bạn có thể sử dụng các điều kiện để lọc các giá trị biến bằng cách sử dụng ở đâu tuyên bố nếu bạn muốn làm như vậy. Nếu không, với các điều kiện bình thường, bạn vẫn có thể lưu các giá trị trong một biến duy nhất. Điều này bao gồm các giá trị ký tự và số.

Đây là một ví dụ để chứng minh việc tạo một biến macro bằng cách sử dụng proc sql:

proc sql;
select age into: age separated by ','
from test_example;

Giao diện SQL

Đầu ra chứa danh sách tất cả các giá trị tuổi từ bảng test_example, mỗi cái được phân tách bằng dấu phẩy. Điều này có thể được sử dụng để lọc thông tin trong một câu lệnh Proc SQL khác khi bạn đang lấy thông tin từ các bảng máy chủ.

Đầu ra:


Giao diện SAS

Sử dụng Macro SAS để tự động hóa các tác vụ lặp lại

Danh sách macro này không đầy đủ. Có một số biến thể khác có thể giúp cuộc sống của bạn dễ dàng hơn, đặc biệt nếu bạn viết mã mỗi ngày.

Tuy nhiên, macro không bị hạn chế chỉ với SAS. Có một số biến thể macro có sẵn trong VBA có thể được sử dụng để tự động hóa các tác vụ lặp lại hàng ngày trong Excel, Word và các ứng dụng MS Office khác.

Nếu bạn là một người yêu thích tự động hóa, hãy thử các macro VBA.


Macbook có nhật ký bên cạnh
Cách hợp nhất nhiều trang tính Excel bằng Macro VBA

Việc hợp nhất dữ liệu từ nhiều hơn một trang tính Excel trong cùng một sổ làm việc là một điều thực sự phức tạp … cho đến khi bạn sử dụng macro VBA.

Đọc tiếp


Thông tin về các Tác giả

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *