2017-10-11 2 views
0

Hausaufgabe. Hier sind die Fragen:SAS-Datasets zusammenführen, aber nur die gemeinsamen Beobachtungen beibehalten

a. Merge product_list und Lieferant von SUPPLIER_ID einen neuen Datensatz zu erstellen, work.prodsup.

b. Senden Sie das Programm und bestätigen Sie, dass work.prodsup mit 556 Beobachtungen erstellt wurde.

c. Ändern Sie den Schritt DATA so, dass nur die Beobachtungen ausgegeben werden, die sich in product_list aber nicht Lieferanten befinden.

Teil A und B sind fertig, aber Teil C ist, was ich habe Probleme mit.

Hat product_list ersten

proc sort data=hw2.product_list; 
    by Supplier_ID; 
run; 

data work.prodsup; 
    merge hw2.product_list hw2.supplier; 
    by Supplier_ID; 
run; 

Was ist die Funktion Ausgabe zu ändern, zu sortieren, so daß sie nur Beobachtungen, dass ein Datensatz in den anderen aber nicht?

Antwort

2

Sie können durch Zugabe von in = X in Ihre merge Anweisung Auswahlkriterien hinzuzufügen:

data work.prodsup; 
    merge hw2.product_list(in=a) hw2.supplier(in=b); 
    by Supplier_ID; 
    if a and not b; 
run; 

Dies ist, was Sie wollen, aber Sie können auch tun nette Tricks wie links schneller schließt sich als in proc sql.

if a; /*Left join*/ 
if a and b; /*Inner join*/ 
if b; /*Right join*/ 

Mehr auf merge in Aussage hier: https://onlinecourses.science.psu.edu/stat481/node/18

Verwandte Themen