Combinarea tabelelor SAS

Similar documents
STRUCTURI DE DATE. Compresia datelor

Modul Retineri.

Metode ansamblu Ensemble learning. Ruxandra Stoean

Lucrarea de laborator nr. 11 Globalizarea si localizarea aplicatiilor.net

Fig Trapezul exterior este y 1, iar cel interior y 3.

Noul sistem de sine de ghidaj pentru o precizie maxima!!!

CASA si BANCA. Modulele de CASA si BANCA sunt asemanatoare, de aceea prezentarea lor va fi facuta in comun. 1. Primul submodul de Casa / Banca

1. Noua procedura pentru biletele Zug zum Flug la rezervarea pachetelor

FAST FLEXIBLE FRIENDLY

2. Dispersii. Ozon (O 3): Viteza si directia vantului:

Laborator 2. Crearea unei interfete MatLab cu ajutorul functiilor uicontrol si uimenu.

MANUAL DE UTILIZARE CIEL SIMPLU

EXCURSII OPTIONALE EMIRATELE ARABE UNITE

Ghid practic pentru stabilirea categoriei unei întreprinderi

KIT DE MASURARE NIVEL DE SEMNAL IN RETELE CATV

Cod de proiectare. Evaluarea actiunii zapezii asupra constructiilor

AGENTIA DE TURISM KUSADASI KUSADASI SEDIU CENTRAL B-dul Iancu de Hunedoara, nr 36, etaj 1, sector 1 Telefon: ; Fax:

Pagina de autentificare:

Regasiti in cele ce urmeaza ultimele update-uri in materie de produs si operational la touroperatorii din grupul Neckermann/Thomas Cook.

tom Programmer Manual de utilizare - versiune software

MANUAL DE UTILIZARE TS1-MFB. COMANDA TELECOMENZII Butoane Cheia Conditii. Blocare P1K1 Cu cheia de contact. Deblocare P1K2 Cu cheia de contact

Izoeritroliza neonatala

CARTE TEHNICA. Instructiuni de instalare, functionare PENTRU REGULATORUL CLIMATIC EV 70

Tel: Fax: Sos. Bucure ti-ploie ti Nr RO , Sector 1 Bucure ti, Romania

Synco 700 Regulator pentru incalzire RMH760B Regulator pentru cascada de cazane RMK770 Instructiuni de utilizare

MANUAL DE UTILIZARE 6935IN Banda de alergat insportline Mystral

AIRAC AIP SUPPLEMENT 01/16. WORK in progress at BACĂU/George Enescu airport Phase I

Routing Information Protocol

2.1. Sectiunea administrator Sectiunea profil...5

12 Specii de rechini

Rain Bird. Programator ESP-RZX Ghid de instalare si manual de programare. English ESP-RZX ESP-RZX OFF OFF MIN AUTO Z O N E BACK OFF ON NEXT AUTO

De ce sa optimizezi procesul de comanda?

Baile Felix - Inscrieri Timpurii 2017

Pasul 1. Realizati-va designul dorit. Acesta poate contine fotografii sau imagini vectoriale.

SISTEME DE OPERARE

Structura sistemelor de operare

UTILIZAREA PRODUSELOR BENDER LA NAVE

Specificatii Grau Panificatie-UE Futures

CAP.I DESCRIEREA STRUCTURALA A UNUI SISTEM DE CALCUL

Doua metode pentru amplificarea vointei pe care le-am folosit cu succes

STUDIU PRIVIND OPTIMIZAREA OPERATIILOR DE STRUNJIRE PRIN SIMULARE CAM CU VISUALTURN

BRAN BOOTCAMP BE FIT!

(Valoarea Pasului de Tranzactionare = 1 leu)

AIRAC AIP SUPPLEMENT 01/17 Work in progress at BUCURE TI / Henri Coand Airport

GSM Gate Control Telecomanda GSM pentru porti si bariere electrice

IN VEDEREA REIMBARCARII TREBUIE SA URMATI PASII DE MAI JOS

Preview 6 PHI of 8 1/25/2015 8:35 PM

Anexe. Clasele de asigurare

Aplicatie de vanzare pentru restaurante

Sistem de informare si ierarhizare pentru imbunatatirea dezvoltarii regionale. Sistem general de diseminare

Ghid rapid de utilizare SelfAWB

3.6.7 Terminale [i terminatoare de re]ea ISDN

Editia a 3-a (ianuarie 2009)

Manual. Proiectare imbinari otel

Laser Multipoint Verde-50mW Rosu-80mW Nr. Ref

Bulgaria Statiunea Nisipurile de Aur Optional transport cu autocar Preturile sunt in EURO / persoana / noapte

Buton de alarmare manuala

World Robot Olympiad 2016 Categoria Standard Standard I Primar Descrierea probei, reguli si punctaj. Clean Road to School

AIRAC AIP SUPPLEMENT 09/15. Work in progress at IA I/Ia i Airport

Asistenţă tehnică pentru managementul proiectului Extinderea si reabilitarea sistemelor de apă in judetele SIBIU si BRASOV

ATS2000/3000/4000/4500. Ghid de Programare. Versiunea 2.01 (SR_F), Iunie 2004

Usa rotativa TOURNIKET MANUAL DE UTILIZARE GENERAL. 1 Manual de utilizare

The Decameron Of Giovanni Boccaccio - Limpidsoft the decameron of giovanni boccaccio by giovanni boccaccio trans. john payne styled bylimpidsoft

INTERVIU Iordan Gheorghe BARBULESCU Cred ca in 30 de ani Uniunea Europeana va fi o federatie

Versiunea Software 2.1

Este potrivita pentru imprimarea cu: plastisoli, Braille, solder mask peelable, imprimari in relief pe diferite substraturi.

doar atat. Si veti zacea in dureri. Nu stiu cum sa zic asta mai clar de atat. Nu vreau sa predic intreg mesajul pe tema asta.

STUDIES REGARDING THE SUSTAINABLE DEVELOPMENT OF RURAL TOURISM AND AGRI- TOURISM IN THE VATRA DORNEI MICROZONE, SUCEAVA COUNTY

Primul document elaborat abordeaza subiectul Briefului de la client catre agentie considerat unanim a fi primul pas catre o campanie buna.

DECLARAȚIA MONDIALĂ A MAMELOR

TEHNICA MISCARII BROASTE DE USI. Deschideti si traiti momente senzationale!

Corfu (din București)

Folie PVC pentru amenajarea de iazuri, lacuri sau helestee

s:vii!. 6pV(~r6:-: ~~

Inginerie software seminar 1. ISS - Seminar Multimi, structuri, sisteme, modelare

Exista trei mari principii ale cultivarii biologice a legumelor: FERTILIZAREA CU INGRASAMANT ORGANIC

RACITOARE ADIABATICE -FRESCO-

Implicatiile Teoriei Haosului in stiinta economica

O companie mica de biotehnologie care atrage investitori mari

SISTEME AVANSATE DE ASIGURARE SI ACCES CONTROL IN ZONE CU NECESITATI RIDICATE DE SECURITATE

AIRAC AIP SUPPLEMENT 02/17 WORK in progress at BAC U/George Enescu airport Phase II

Ghid Operational pentru Mentenanta HW IBM

Art PRESOSTAT ELECTRONIC

RADIOAMATORII VOLUNTARI IN SITUATII DE URGENTA

AIRAC AIP SUPPLEMENT 01/14. Work in progress at ORADEA/Oradea airport Phase I

CAMINE DE INSPECTIE SI BRANSAMENT (RACORD) PENTRU INSTALATII DE CANALIZARE D400 PP/PVC

Tokyo : Ce e super sa vizitezi!

Navigare la pagina de start

NISIPURILE DE AUR VARA 2018

Desensibilizarea sistematica

TIMS to PowerSchool Transportation Data Import

Clasa a 11-a. Review of preview

Bine ati venit in gradina GARDENA

Sistemul de Tranzactionare al OPCOM

Active Totalul tuturor posesiunilor unei entitati. Banca centrala Se refera la o institutie care este, prin lege, abilitata sa emita moneda.

INSTRUCTIUNI DE UTILIZARE

STUDIU. Cadrul legal pentru infiintarea unei entitati juridice in Romania

Piata alimentelor pentru sugari

1. DEFINITII CE INSEAMNA ANUMITE EXPRESII IN ACESTE CONDITII?

AFTN: LRBBRTYD

Transcription:

Combinarea tabelelor SAS rodica.lung@econ.ubbcluj.ro 19 decembrie 2016 rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 1 / 27

Moduri de combinare: one to one: se creeaza observatii care contin toate variabilele in fiecare tabel folosind set; concatenare: se ataseaza tabelele unul dupa altul; se foloseste set; intercalare bazata pe variabile comune; se foloseste set,by; match-merging: potriveste observatii din doua sau mai multe tabele intr-una singura pe baza valorilor comune ale unei variabile. Observatie Pentru combinarea tabelelor se poate folosi si proc sql rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 2 / 27

Citire one-to-one Citire one-to-one Combinarea one-to-one este utila in cazurile in care observatiile sunt ordonate dupa un ID sau cheie unica si organizate in asa fel incat campurile celor doua tabele sa se suprapuna. se face prin mai multe instructiuni set cu care se pot citi tabele diferite sau acelasi tabel de mai multe ori; Forma generala: DATA output-sas-data-set; SET SAS-data-set-1; SET SAS-data-set-2; RUN; rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 3 / 27

Citire one-to-one Exemplu Fie tabelele SAS C si D: Tabela: Tabel C Num VarA 1 A1 3 A2 5 A3 Tabela: Tabel D Num VarA 2 B1 4 B2 si data one2one; set c; set d; rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 4 / 27

Citire one-to-one La executarea codului, pasul data va trece prin urmatorii pasi, rezultand tabelul de jos: Tabela: Pasii parcursi one-to-one Pas Variabile in noul tabel noile variabile Num VarA VarB primul set 1 A1 al doilea set 2 A1 B1 din nou primul set 3 A2 din nou al doilea set 4 A2 B2 Tabela: Tabel one2one Num VarA VarB 2 A1 B1 4 A2 B2 rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 5 / 27

Concatenarea Concatenarea tabelele sunt asezate unul dupa altul; noul tabel va contine toate variabilele din toate tabelele concatenate. Exemplu tabelele de concatenat se enumera in aceeasi instructiune set; concatenarea tabelelor se poate face si cu proc append. data concat; set C D; Rezultatul: Tabela: Tabel concat Num VarA VarB 1 A1 3 A2 5 A3 2 B1 4 B2 rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 6 / 27

Concatenarea Se observa ca: Exemplu variabila comuna celor doua tabele, num are acelasi tip in ambele tabele este obligatoriu pentru toate variabilele care au acelasi nume in toate tabelele, altfel se emite eroare daca variabilele cu acelasi nume au lungimi diferite, SAS atribuie in noul tabel lungimea primei variabile intalnite (in primul tabel in care apare) si procedeaza la fel cu etichetele, formate sau informate, adica ia prima varianta intalnita in primul tabel. data clinic.concat; set clinic.therapy1999 clinic.therapy2000; rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 7 / 27

Intercalarea Intercalarea Daca in pasul data in care se face concatenare se foloseste o instructiune by atunci va rezulta o intercalare bazata pe variabilele din lista by. Forma generala a pasului data pentru intercalare este: DATA output-sas-data-set; SET SAS-data-set-1 SAS-data-set-2; BY variable(s); RUN; unde variable(s) indica variabilele dupa care sa se faca intercalarea.! TOATE TABELELE DIN LISTA SET TREBUIE SA FIE ORDONATE DUPA VARIABILELE DIN LISTA BY rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 8 / 27

Intercalarea Exemplu: data interlv; set c d; by num; Tabela: Tabel C Num Var 1 C1 2 C2 2 C3 3 C4 Tabela: Tabel D Num VarA 2 D1 3 D2 3 D3 Tabela: Tabel concat Num VarA 1 C1 2 C2 2 C3 2 D1 3 C4 3 D2 3 D3 rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 9 / 27

Intercalarea Alt exemplu data clinic.interlv; set clinic.therapy1999 clinic.therapy2000; by month; rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 10 / 27

Match-merging se combina mai multe tabele pe baza unei variabile comune; se foloseste instructiunea merge in loc de set. Forma generala: DATA output-sas-data-set; MERGE SAS-data-set-1 SAS-data-set-2; BY <DESCENDING> variable(s); RUN; rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 11 / 27

output-sas-data-set denumeste tabelul nou creat de pasul data; SAS-data-set-1,2 - tabelele SAS din care se citesc datele; variable(s) in by specifica una sau mai multe variabile dupa care se unesc observatiile <descending> indica faptul ca datele sursa sunt ordonate in ordine descrescatoare dupa variabila care urmeaza; daca in lista by sunt mai multe variabile, <descending> are efect doar asupra variabilei care urmeaza imediat dupa ea.; tabelele din instructiunea by trebuie sa fie sortate inainte de executarea pasului data; variabilele din by trebuie sa aiba acelasi tip in toate tabelele unite de instructiunea merge; descending nu se poate folosi cu tabele indexate pentru ca acestea sunt intotdeauna ordonate crescator. rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 12 / 27

Tabela: Tabel A Num VarA 1 A1 2 A2 3 A3 Tabela: Tabel B Num VarB 1 B1 2 B2 4 B3 Dupa rularea codului: data merged; merge a b; by num; Tabela: Tabel merged Num VarA VarB 1 A1 B1 2 A2 B2 3 A3 4 B3 In tabelul rezultat vor aparea toate observatiile din toate tabelele sursa Se pot adauga instructiuni si optiuni pentru selectarea observatiilor dorite. Daca unul din tabelele de intrare nu contine observatii pentru o anumita valoare a variabilei by in tabelul rezultat acestea se completeaza cu missing. rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 13 / 27

Figura: Alt exemplu de match-merge rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 14 / 27

proc sort data=clinic.demog; by id; proc print data=clinic.demog; Obs ID Age Sex Date 1 A001 21 m 05/22/75 2 A002 32 m 06/15/63 va afisa tabelul demog: 3 A003 24 f 08/17/72 4 A004. 03/27/69 5 A005 44 f 02/24/52 6 A007 39 m 11/11/57 rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 15 / 27

proc sort data=clinic.visit; by id; proc print data=clinic.visit; va afisa tabelul visit: Obs ID Visit SysBP DiasBP Weight Date 1 A001 1 140 85 195 11/05/98 2 A001 2 138 90 198 10/13/98 3 A001 3 145 95 200 07/04/98 4 A002 1 121 75 168 04/14/98 5 A003 1 118 68 125 08/12/98 6 A003 2 112 65 123 08/21/98 7 A004 1 143 86 204 03/30/98 8 A005 1 132 76 174 02/27/98 9 A005 2 132 78 175 07/11/98 10 A005 3 134 78 176 04/16/98 11 A008 1 126 80 182 05/22/98 rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 16 / 27

iar unite cu merge: data clinic.merged; merge clinic.demog clinic.visit; by id; proc print data=clinic.merged; Obs ID Age Sex Date Visit SysBP DiasBP Weight 1 A001 21 m 11/5/1998 1 140 85 195 2 A001 21 m 10/13/1998 2 138 90 198 3 A001 21 m 7/4/1998 3 145 95 200 4 A002 32 m 4/14/1998 1 121 75 168 5 A003 24 f 8/12/1998 1 118 68 125 6 A003 24 f 8/21/1998 2 112 65 123 7 A004. 3/30/1998 1 143 86 204 8 A005 44 f 2/27/1998 1 132 76 174 9 A005 44 f 7/11/1998 2 132 78 175 10 A005 44 f 4/16/1998 3 134 78 176 11 A007 39 m 11/11/1957... 12 A008. 5/22/1998 1 126 80 182 rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 17 / 27

Date ordonate descrescator proc sort data=clinic.demog; by descending id; proc sort data=clinic.visit; by descending id; data clinic.merged; merge clinic.demog clinic.visit; by descending id; proc print data=clinic.merged; rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 18 / 27

Obs ID Age Sex Date Visit SysBP DiasBP Weight 1 A008. 5/22/1998 1 126 80 182 2 A007 39 m 11/11/1957... 3 A005 44 f 2/27/1998 1 132 76 174 4 A005 44 f 7/11/1998 2 132 78 175 5 A005 44 f 4/16/1998 3 134 78 176 6 A004. 3/30/1998 1 143 86 204 7 A003 24 f 8/12/1998 1 118 68 125 8 A003 24 f 8/21/1998 2 112 65 123 9 A002 32 m 4/14/1998 1 121 75 168 10 A001 21 m 11/5/1998 1 140 85 195 11 A001 21 m 10/13/1998 2 138 90 198 12 A001 21 m 7/4/1998 3 145 95 200 rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 19 / 27

Procesarea match-merge In faza de compilare se construieste PDV (structura noului tabel). Variabilele care au acelasi nume in tabelele sursa vor aparea o singura data in noul tabel; lungimea lor e data de prima aparitie din lista merge; valoarea va fi din ultimul tabel citit. Dupa crearea PDV, in faza aceasta se atribuie cate un pointer de urmarire fiecarul tabel sursa. rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 20 / 27

In faza de executie SAS verifica secvential daca observatiile curente din tabelele sursa au aceeasi valoare pentru variabilele din by: daca DA, atunci observatiile sunt scrise in PDV in ordinea in care apar tabelele pe lista merge. Valorile din variabilele cu acelasi nume sunt scrise una peste alta intr-o singura variabila. SAS scrie observatia combinata in tabelul nou si retine valoarile in PDV pana cand valoarea din by se schimba in toate tabelele. daca NU, SAS determina care valori sunt primele si scrie observatia respectiva in PDV dupa care continutul PDV se scrie in tabel. Cand se schimba valoarea din by in toate tabelele sursa, PDV e reinitializat cu missing. rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 21 / 27

Tratarea observatiilor fara pereche si a valorilor missing daca o observatie are valori missing acestea sunt copiate in noul tabel. Observatiile care au valori missing pentru variabilele din lista by vor aparea la inceputul tabelului. rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 22 / 27

daca o observatie nu are valoare a variabilei by distincta de toate celalalte, in tabelul rezultat vor fi trecute valori missing pentru valorile lipsa. rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 23 / 27

Re-denumirea variabilelor - cand nu vrem sa suprapunem variabilele cu acelasi nume din tabele diferite. Forma generala: (RENAME=(old-variable-name=new-variable-name)) unde optiunea rename= in paranteze urmeaza numele tabelului SAS sursa care contine variabilele care trebuier re-denumite; old-variable-name specifica variabila care trebuie redenumita se pot redenumi mai multe variabile intr-o optiune rename=; new-variable-name specifica noul nume al variabilei rename= se poate folosi si in instructiunea set. rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 24 / 27

Exemplu: data clinic.merged; merge clinic.demog(rename=(date=birthdate)) clinic.visit(rename=(date=visitdate)); by id; proc print data=clinic.merged; Excluderea observatiilor fara pereche -cand ne intereseaza doar observatiile care au corespondent in toate tabelele; pentru a exclude observatiile care nu au corespondent din tabelul rezultat se foloseste optiunea in= si if pentru selectare. in= creeaza o variabila temporara care indica daca tabelul a contribuit la observatia curenta sau nu. if verifica valorile variabilelor in= si alege doar variabilele care apar in ambele tabelel. rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 25 / 27

Exemplu: toate optiunile se put in aceeasi paranteza: data clinic.merged; merge clinic.demog(in=indemog rename=(date=birthdate)) clinic.visit(in=invisit rename=(date=visitdate)); by id; if indemog=1 and invisit=1; proc print data=clinic.merged; rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 26 / 27

Selectarea variabilelor Se face tot cu drop si keep. data clinic.merged(drop=id); merge clinic.demog(in=indemog rename=(date=birthdate)) clinic.visit(drop=weight in=invisit rename=(date=visitdate)) ; by id; if indemog and invisit; proc print data=clinic.merged; drop se foloseste ca si optiune la merge daca nu se doreste procesarea variabilelor respective in nici un fel; daca valorile variabilelor apar in pasul data dar nu se doreste copierea lor in noul tabel, drop trebuie sa apara ca si optiune a instructiunii data rodica.lung@econ.ubbcluj.ro Combinarea tabelelor SAS 19 decembrie 2016 27 / 27