Trước đây, chúng ta đã nghiên cứu về các Hàm SAS , bây giờ chúng ta sẽ chuyển sang một phương pháp rất dễ dàng và thú vị để kết hợp hai tập dữ liệu trong lập trình SAS tức là các tập dữ liệu nối SAS.
Các bài viết liên quan:
Sau khi kết thúc hướng dẫn này, bạn sẽ có thể hiểu các tập dữ liệu nối SAS và các trường hợp khác nhau của các tập dữ liệu nối.
Concatenate Tập dữ liệu SAS là gì?
Chúng tôi gặp các loại tập dữ liệu SAS khác nhau và nhiều lần chúng tôi muốn kết hợp hai tập dữ liệu để có ý tưởng rõ ràng về phân tích của chúng tôi. Câu lệnh SET được sử dụng để nối hai tập dữ liệu trong SAS.
Nếu có hai tập dữ liệu, giả sử một tập có 2 quan sát và tập còn lại có 3 quan sát, thì tập dữ liệu kết hợp SAS của chúng ta sẽ có 5 quan sát. Thứ tự các quan sát là tuần tự. Tất cả các quan sát từ tập dữ liệu đầu tiên được theo sau bởi tất cả các quan sát từ tập dữ liệu thứ hai, v.v.
Dưới đây là cú pháp của câu lệnh SET trong SAS
SET data-set 1 data-set 2 data-set 3…..;
Tập dữ liệu 1, tập dữ liệu 2 và tập dữ liệu 3 là tên của các tập dữ liệu mà chúng tôi muốn kết hợp.
Ví dụ – giả sử tập dữ liệu store1 chứa ba biến, cửa hàng (số), ngày (trong tuần) và doanh số (tính bằng đô la):
Store Day Sales
1 M 1200
1 T 1435
1 W 1712
1 R 1529
1 F 1920
1 S 2325
và bộ dữ liệu store2 chứa ba biến giống nhau:
Store Day Sales
2 M 2215
2 T 2458
2 W 1798
2 R 1692
2 F 2105
2 S 2847
Đối với các tập dữ liệu nối SAS, bạn chỉ cần chỉ định danh sách các tên tập dữ liệu trong một câu lệnh SET.
DATA store1; input Store Day $ Sales; DATALINES; 1 M 1200 1 T 1435 1 W 1712 1 R 1529 1 F 1920 1 S 2325 ; RUN; DATA store2; input Store Day $ Sales; DATALINES; 2 M 2215 2 T 2458 2 W 1798 2 R 1692 2 F 2105 2 S 2847 ; RUN; DATA bothstores; set store1 store2; RUN; PROC PRINT data = bothstores; title ' The bothstores dataset'; RUN;
Đầu ra của chương trình trên sẽ có dạng:
Store Day Sales
1 M 1200
1 T 1435
1 W 1712
1 R 1529
1 F 1920
1 S 2325
2 M 2215
2 T 2458
2 W 1798
2 R 1692
2 F 2105
2 S 2847
Xem thêm Tách và trích tập dữ liệu trong SAS
Các trường hợp khác nhau của các tập dữ liệu kết hợp
Trong ví dụ trên, chúng ta thấy rằng cả hai tập dữ liệu đều có ba biến nên việc nối chúng rất dễ dàng. Nhưng, điều gì sẽ xảy ra nếu các biến khác nhau, hoặc có độ dài khác nhau hoặc có tên khác nhau? Hãy để chúng tôi hiểu điều này từ Bộ dữ liệu kết hợp SAS trong các trường hợp khác nhau.
Tên khác nhau của các biến
Trong trường hợp này, cả hai tập dữ liệu đều có tên khác nhau cho các biến của chúng. Vì vậy, khi chúng tôi thử và nối, một lỗi có thể được hiển thị.
Để khắc phục điều này, khi nối các tập dữ liệu, chúng ta sẽ đổi tên các biến để tên của chúng xuất hiện như một trong tập dữ liệu đã nối. Hãy để chúng tôi xem làm thế nào chúng tôi có thể làm điều này.
Thí dụ:
Trong ví dụ dưới đây, tập dữ liệu x1 có tên biến là x1inc trong khi tập dữ liệu x2 có tên biến là x2inc. Nhưng cả hai biến này đều đại diện cho cùng một kiểu (số). Chúng tôi áp dụng hàm RENAME trong câu lệnh SET như hình dưới đây:
DATA x1; INPUT empid name $ x1inc ; DATALINES; 2 Art 22000 1 Bill 30000 3 Paul 25000 ; RUN; DATA x2; INPUT empid name $ x2inc ; DATALINES; 1 Bess 15000 3 Pat 50000 2 Amy 18000 ; RUN; DATA x3; SET x1(RENAME=(x1inc=inc))x2(RENAME=(x2inc=inc)); RUN; PROC PRINT DATA=x3; RUN;
Đầu ra-
OBS EMPID NAME INC
1 2 Art 22000
2 1 Bill 30000
3 3 Paul 25000
4 1 Bess 15000
5 3 Pat 50000
6 2 Amy 18000
Các thuộc tính biến khác nhau
Chúng ta đã nói về các thuộc tính biến trong các lớp trước đó là kiểu, độ dài, nhãn, v.v. Bây giờ, điều gì sẽ xảy ra nếu những thuộc tính này khác nhau. Một lần nữa, trong khi kết hợp các tập dữ liệu, chúng ta có thể chỉ định độ dài trong câu lệnh SET mà chúng ta muốn giữ lại hoặc kiểu dữ liệu của các biến.
Chúng ta hãy xem xét một ví dụ:
Trong ví dụ dưới đây, tên biến có độ dài 3 trong tập dữ liệu đầu tiên và 4 trong tập dữ liệu thứ hai. Khi nối, chúng ta áp dụng câu lệnh LENGTH trong tập dữ liệu nối SAS để đặt độ dài tên là 7 hoặc tổng của hai độ dài.
DATA x1; INPUT empid name $ x1inc ; DATALINES; 2 Art 22000 1 Bill 30000 3 Paul 25000 ; RUN; DATA x2; INPUT empid name $ x2inc ; DATALINES; 1 Bess 15000 3 Pat 50000 2 Amy 18000 ; RUN; DATA x3; SET x1(RENAME=(x1inc=inc))x2(RENAME=(x2inc=inc)); RUN; PROC PRINT DATA=x3; RUN;
Đầu ra:
OBS empID NAME INC
1 2 Art 22000
2 1 Bob 30000
3 3 Tom 25000
4 1 Bes 15000
5 3 Ror 50000
6 2 Jan 18000
Số lượng biến khác nhau
Nếu một trong hai tập dữ liệu có số lượng biến nhiều hơn tập dữ liệu kia, thì tập dữ liệu có số lượng biến ít hơn sẽ hiển thị các giá trị bị thiếu thay cho biến phụ đó.
Bản tóm tắt
Hôm nay chúng ta đã học nối ghép trong SAS là gì, cách nối các tập dữ liệu SAS trong lập trình SAS. Chúng tôi cũng đã thảo luận về các trường hợp nối các tập dữ liệu khác nhau trong SAS.
Hy vọng bạn tìm thấy lời giải thích hữu ích. Nếu bạn có bất kỳ câu hỏi nào, hãy hỏi trong phần bình luận.
Xem thêm Tìm hiểu về lập trình SAS