Rate this post

Trong bài trước, chúng ta đã nghiên cứu về Tập dữ liệu sắp xếp của Proc, hôm nay chúng ta sẽ tìm hiểu về cách SAS Merge Datasets và cách hợp nhất hai hoặc nhiều tập dữ liệu trong SAS.

Hơn nữa, chúng ta sẽ thảo luận về các biến khác nhau và các cách hợp nhất các tập dữ liệu trong ngôn ngữ Lập trình SAS và một số ví dụ về SAS Merge Datasets để xóa các truy vấn của chúng tôi.

Merge, Join, Combining trong SAS là gì?

Trong SAS, “Merge,” “Join,” và “Combining” đều là các khái niệm liên quan đến việc kết hợp (combine) dữ liệu từ nhiều nguồn khác nhau để tạo ra một bộ dữ liệu mới. Dưới đây là một cái nhìn tổng quan về các khái niệm này:

  1. Merge trong SAS: Trong SAS, “Merge” thường được sử dụng để kết hợp hai hoặc nhiều bộ dữ liệu thành một bộ dữ liệu mới dựa trên một hoặc nhiều trường chung (common field). SAS sử dụng câu lệnh MERGE để thực hiện việc này. Khi bạn merge các bộ dữ liệu, các trường từ các nguồn khác nhau sẽ được kết hợp lại với nhau dựa trên trường chung, và bạn sẽ có một bộ dữ liệu kết hợp với tất cả thông tin cần thiết từ các bộ dữ liệu nguồn.
  2. Join trong SAS: “Join” là một thuật ngữ thường được sử dụng trong SQL để thực hiện việc kết hợp dữ liệu từ nhiều bảng dựa trên các trường chung. Trong SAS, bạn có thể sử dụng PROC SQL để thực hiện các loại join như INNER JOIN, LEFT JOIN, RIGHT JOIN, và FULL JOIN. Join trong SAS có tương tự với Merge, nhưng thường được sử dụng khi bạn làm việc với cơ sở dữ liệu SQL hoặc muốn thực hiện các phép kết hợp phức tạp hơn.
  3. Combining trong SAS: “Combining” đề cập đến việc kết hợp dữ liệu từ nhiều nguồn mà không nhất thiết phải dựa trên các trường chung. SAS cung cấp nhiều công cụ cho việc này, bao gồm UNION và SET statements. Khi bạn combine dữ liệu, bạn có thể chỉ đơn giản là nối các bộ dữ liệu lại với nhau để tạo một bộ dữ liệu lớn hơn mà không cần quan tâm đến trường chung.

Tùy thuộc vào tình huống cụ thể của bạn và cách bạn lưu trữ dữ liệu, bạn có thể lựa chọn sử dụng Merge, Join, hoặc Combining để tổng hợp thông tin từ các nguồn dữ liệu khác nhau trong SAS.

Xem thêm Tìm hiểu về biến trong SAS

Cách sử dụng Merge trong SAS

Trong SAS, câu lệnh MERGE được sử dụng để kết hợp (merge) hai hoặc nhiều bộ dữ liệu thành một bộ dữ liệu mới dựa trên một hoặc nhiều trường chung (các trường có giá trị tương tự trong các bộ dữ liệu nguồn). Dưới đây là cách sử dụng câu lệnh MERGE cùng với một ví dụ.

Cú pháp cơ bản:

DATA dataset_merged;
   MERGE dataset1 dataset2;
   BY common_field;
RUN;

DATA dataset_merged; MERGE dataset1 dataset2; BY common_field; RUN;

  • DATA dataset_merged;: Đây là tên của bộ dữ liệu mới sau khi kết hợp.
  • MERGE dataset1 dataset2;: Câu lệnh MERGE để kết hợp dataset1dataset2. Bạn có thể thêm nhiều bộ dữ liệu khác nếu cần.
  • BY common_field;: Điều này chỉ định trường chung (common_field) dựa vào đó SAS sẽ thực hiện kết hợp. Dữ liệu sẽ được kết hợp dựa trên giá trị của trường này.

Ví dụ:

Giả sử bạn có hai bộ dữ liệu: sales_datacustomer_data, và bạn muốn kết hợp chúng dựa trên trường CustomerID để tạo một bộ dữ liệu mới có thông tin về doanh số bán hàng và thông tin khách hàng. Dưới đây là một ví dụ về cách thực hiện điều này:

DATA combined_data;
   MERGE sales_data customer_data;
   BY CustomerID;
RUN;

Kết quả là combined_data sẽ chứa thông tin từ cả hai bộ dữ liệu dựa trên CustomerID. Trường hợp trùng lặp sẽ được kết hợp lại thành một bản ghi trong combined_data.

Hãy chắc chắn rằng trường chung (CustomerID trong trường hợp này) có giá trị tương tự trong cả hai bộ dữ liệu để đảm bảo việc kết hợp là hợp lý.

Xem thêm merge sort trong c++ là gì ?

Cách thực hiện Join trong SAS

Trong SAS, để thực hiện Join, bạn có thể sử dụng PROC SQL hoặc DATA Step. Dưới đây là cách thực hiện Join trong SAS bằng cả hai phương pháp:

Sử dụng PROC SQL

  1. Bắt đầu một PROC SQL: Bắt đầu một PROC SQL bằng cách sử dụng câu lệnh sau:
PROC SQL;
  1. Chọn bảng cơ sở (base table): Sử dụng câu lệnh FROM để chọn bảng cơ sở từ nơi bạn muốn thực hiện Join.
FROM dataset1 AS alias1

Ở đây, dataset1 là tên của bảng cơ sở, và alias1 là tên tạm thời cho nó.

  1. Thực hiện Join: Sử dụng câu lệnh JOIN để thực hiện Join với một bảng khác. Bạn cần xác định trường kết hợp bằng cách sử dụng câu lệnh ON.
JOIN dataset2 AS alias2
ON alias1.common_field = alias2.common_field;

Ở đây, dataset2 là bảng bạn muốn tham gia (Join), và common_field là trường dữ liệu chung mà bạn muốn sử dụng để thực hiện Join.

  1. Chọn các trường dữ liệu (columns): Sử dụng câu lệnh SELECT để chọn các trường dữ liệu mà bạn muốn xuất ra từ kết quả Join.
SELECT alias1.field1, alias2.field2; 

Ở đây, field1field2 là các trường dữ liệu bạn muốn chọn.

  1. Kết thúc PROC SQL: Kết thúc PROC SQL bằng câu lệnh QUIT;
QUIT;

Sử dụng DATA Step

  1. Bắt đầu một DATA Step mới: Bắt đầu một DATA Step mới bằng câu lệnh sau:
DATA new_dataset;

Ở đây, new_dataset là tên cho tập dữ liệu mới sau khi Join.

  1. Sử dụng câu lệnh MERGE: Sử dụng câu lệnh MERGE để thực hiện Join giữa các bảng.
MERGE dataset1 (IN=a) dataset2 (IN=b); BY common_field; 

Trong đó, dataset1dataset2 là các bảng bạn muốn tham gia, common_field là trường dữ liệu chung, và (IN=a)(IN=b) được sử dụng để xác định từng bản ghi thuộc về bảng nào sau khi Join.

  1. Chọn các trường dữ liệu (variables): Sử dụng câu lệnh KEEP để chọn các trường dữ liệu mà bạn muốn giữ lại trong kết quả.
KEEP field1 field2; 

Ở đây, field1field2 là các trường dữ liệu bạn muốn chọn.

  1. Kết thúc DATA Step: Kết thúc DATA Step bằng câu lệnh RUN;
RUN;

Sử dụng PROC SQL thường dễ dàng hơn và linh hoạt hơn đối với các truy vấn phức tạp, trong khi DATA Step thích hợp cho các tác vụ xử lý dữ liệu phức tạp hơn. Tùy thuộc vào tình huống cụ thể của bạn, bạn có thể chọn cách thực hiện Join phù hợp.

Xem thêm Join chuỗi trong Python

Combining dữ liệu từ nhiều nguồn

Khi bạn cần kết hợp dữ liệu từ nhiều nguồn khác nhau, SAS cung cấp nhiều phương pháp để thực hiện điều này. Dưới đây là một số phương pháp phổ biến:

1. Data Step MERGE:

Data Step MERGE cho phép bạn kết hợp (merge) dữ liệu từ nhiều bộ dữ liệu SAS vào một bộ dữ liệu mới dựa trên một hoặc nhiều trường chung. Đây là một ví dụ:

DATA combined_data;
   MERGE dataset1 dataset2;
   BY common_field;
RUN;

2. PROC SQL:

PROC SQL là một công cụ mạnh mẽ cho việc truy vấn và kết hợp dữ liệu từ nhiều nguồn. Bạn có thể sử dụng INNER JOIN, OUTER JOIN và nhiều loại kết hợp khác. Dưới đây là một ví dụ về INNER JOIN:

PROC SQL; CREATE TABLE combined_data AS SELECT * FROM dataset1 INNER JOIN dataset2 ON dataset1.common_field = dataset2.common_field; QUIT;

3. DATA Step SET:

DATA Step SET cho phép bạn kết hợp nhiều bộ dữ liệu thành một bộ dữ liệu duy nhất bằng cách sử dụng câu lệnh SET. Đây là một ví dụ:

DATA combined_data;
   SET dataset1 dataset2;
RUN;

4. Union trong PROC SQL:

Nếu bạn muốn kết hợp dữ liệu từ nhiều nguồn vào một bảng duy nhất, bạn có thể sử dụng UNION trong PROC SQL. Điều này sẽ kết hợp tất cả các bản ghi từ các nguồn thành một bảng. Dưới đây là một ví dụ:

PROC SQL;
   CREATE TABLE combined_data AS
   SELECT *
   FROM dataset1
   UNION
   SELECT *
   FROM dataset2;
QUIT;

5. Nhiều DATA Step MERGE:

Bạn có thể kết hợp nhiều bộ dữ liệu trong cùng một DATA Step MERGE. Điều này thường được sử dụng khi bạn cần kết hợp nhiều bộ dữ liệu với các trường chung khác nhau. Dưới đây là một ví dụ:

DATA combined_data;
   MERGE dataset1 (IN=a) dataset2 (IN=b) dataset3 (IN=c);
   BY common_field;
RUN;

6. Sử dụng PROC APPEND:

PROC APPEND là một cách đơn giản để nối (append) các bộ dữ liệu SAS lại với nhau theo cùng cấu trúc. Điều này thường được sử dụng khi bạn có nhiều tệp dữ liệu SAS với cấu trúc giống nhau và muốn kết hợp chúng.

PROC APPEND BASE=combined_data DATA=dataset1;
PROC APPEND BASE=combined_data DATA=dataset2;
RUN;

Nhớ kiểm tra tính nhất quán và cấu trúc dữ liệu của các bộ dữ liệu trước khi kết hợp chúng. SAS cung cấp nhiều công cụ và phương pháp để kết hợp dữ liệu từ nhiều nguồn khác nhau, và bạn nên chọn phương pháp phù hợp với nhu cầu cụ thể của bạn.

Xem thêm Mệnh đề Join trong SQL

Bản tóm tắt

Do đó, phần này tập trung vào việc tìm hiểu Tập dữ liệu hợp nhất SAS là gì, cách hợp nhất hai hoặc nhiều tập dữ liệu trong SAS và điều gì sẽ xảy ra khi không có sự phù hợp nào trong Tập dữ liệu.

Xem thêm Ứng dụng thực tế của SAS

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now