SAS - Gabungkan Kumpulan Data

Beberapa kumpulan data SAS dapat digabungkan berdasarkan variabel umum tertentu untuk menghasilkan kumpulan data tunggal. Ini dilakukan dengan menggunakanMERGE pernyataan dan BYpernyataan. Jumlah total observasi dalam kumpulan data gabungan seringkali kurang dari jumlah observasi dalam kumpulan data asli. Itu karena variabel dari kedua kumpulan data digabungkan sebagai satu catatan berdasarkan ketika ada kecocokan dalam nilai variabel umum.

Ada dua Prasyarat untuk menggabungkan kumpulan data yang diberikan di bawah ini -

  • kumpulan data masukan harus memiliki setidaknya satu variabel umum untuk digabungkan.
  • kumpulan data masukan harus diurutkan berdasarkan variabel umum yang akan digunakan untuk menggabungkan.

Sintaksis

Sintaks dasar untuk pernyataan MERGE dan BY di SAS adalah -

MERGE Data-Set 1 Data-Set 2
BY Common Variable

Berikut adalah deskripsi parameter yang digunakan -

  • Data-set1,Data-set2 adalah nama kumpulan data yang ditulis satu per satu.

  • Common Variable adalah variabel yang berdasarkan nilai yang cocok, kumpulan data akan digabungkan.

Penggabungan Data

Mari kita pahami penggabungan data dengan bantuan sebuah contoh.

Contoh

Pertimbangkan dua kumpulan data SAS, satu berisi ID karyawan dengan nama dan gaji dan satu lagi berisi ID karyawan dengan ID karyawan dan departemen. Dalam hal ini untuk mendapatkan informasi yang lengkap untuk setiap karyawan kita dapat menggabungkan kedua kumpulan data tersebut. Kumpulan data akhir masih akan memiliki satu observasi per karyawan tetapi akan berisi gaji dan variabel departemen.

# Data set 1	
ID NAME SALARY	
1 Rick 623.3		 
2 Dan 515.2 		
3 Mike 611.5 		
4 Ryan 729.1 
5 Gary 843.25 
6 Tusar 578.6 
7 Pranab 632.8 
8 Rasmi 722.5 

# Data set 2
ID DEPT
1 IT 
2 OPS
3 IT 
4 HR 
5 FIN 
6 IT 
7 OPS
8 FIN 

# Merged data set
ID NAME SALARY DEPT	
1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN

Hasil di atas dicapai dengan menggunakan kode berikut di mana variabel umum (ID) digunakan dalam pernyataan BY. Perlu diketahui bahwa observasi pada kedua dataset tersebut sudah diurutkan pada kolom ID.

DATA SALARY; 
   INPUT empid name $ salary  ; 
DATALINES; 
1 Rick 623.3		 
2 Dan 515.2 		
3 Mike 611.5 		
4 Ryan 729.1 
5 Gary 843.25 
6 Tusar 578.6 
7 Pranab 632.8 
8 Rasmi 722.5 
;
RUN; 
DATA DEPT; 
   INPUT empid dEPT $ ; 
DATALINES; 
1 IT 
2 OPS
3 IT 
4 HR 
5 FIN 
6 IT 
7 OPS
8 FIN 
;
RUN; 
DATA All_details;
MERGE SALARY DEPT;
BY (empid);
RUN;
PROC PRINT DATA = All_details; 
RUN;

Nilai yang Hilang di Kolom Pencocokan

Mungkin ada kasus ketika beberapa nilai dari variabel umum tidak akan cocok di antara kumpulan data. Dalam kasus seperti itu, kumpulan data masih digabungkan tetapi memberikan nilai yang hilang dalam hasilnya.

Contoh

Pertimbangkan kasus ID karyawan 3 hilang dari kumpulan data gaji dan ID karyawan 6 hilang dari kumpulan data DEPT. Ketika kode di atas diterapkan, kita mendapatkan hasil di bawah ini.

ID NAME SALARY DEPT	
1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
3 .		.		IT
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   .
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN

Menggabungkan hanya Pertandingan

Untuk menghindari nilai yang hilang dalam hasil, kita dapat mempertimbangkan untuk menyimpan hanya pengamatan dengan nilai yang cocok untuk variabel umum. Itu dicapai dengan menggunakanINpernyataan. Pernyataan penggabungan program SAS perlu diubah.

Contoh

Dalam contoh di bawah ini, file IN= nilai hanya menyimpan pengamatan di mana nilai dari kedua kumpulan data SALARY dan DEPT pertandingan.

DATA All_details;
MERGE SALARY(IN = a) DEPT(IN = b);
BY (empid);
IF a = 1 and b = 1;
RUN;
PROC PRINT DATA = All_details; 
RUN;

Setelah menjalankan program SAS di atas dengan bagian yang diubah di atas, kami mendapatkan output berikut.

1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN