Nel mio articolo precedente, “Combinazione di set di dati in SAS – Semplificato”, analizziamo tre metodi per combinare i set di dati: allegare, concatenare e unire. In questo articolo, vedremo il metodo più comune e utilizzato per combinare i set di dati: FUSIONE o UNIONE.
La necessità di unire / unire i set di dati:
Prima di entrare nei dettagli, capiamo perché abbiamo davvero bisogno di unirci / unire. Ogni volta che abbiamo informazioni divise e disponibili in due o più set di dati e vogliamo combinarli in un unico set di dati, dobbiamo unirci / unisciti a questi tavoli. Una delle cose principali da tenere a mente è che l'unione dovrebbe essere basata su criteri o campi comuni. Ad esempio, in un'azienda di vendita al dettaglio, abbiamo una tabella delle transazioni giornaliere (la tabella contiene i dettagli del prodotto, dettagli di vendita e dettagli del cliente) e una tabella di inventario (che ha i dettagli del prodotto e la quantità disponibile). però, per avere le informazioni sull'Inventario o sulla disponibilità di un prodotto, cosa dovremmo fare? Combine la tabla TransazioneIl "transazione" se refiere al proceso mediante el cual se lleva a cabo un intercambio de bienes, servicios o dinero entre dos o más partes. Este concepto es fundamental en el ámbito económico y legal, ya que implica el acuerdo mutuo y la consideración de términos específicos. Las transacciones pueden ser formales, como contratos, o informales, y son esenciales para el funcionamiento de mercados y negocios.... con la tabla Inventario basada en Product_Code y reste la cantidad vendida de la cantidad disponible.
la fusione / l'unione può essere di vari tipi e dipende dai requisiti aziendali e dalla relazione tra i set di dati. Primo, Diamo un'occhiata ai vari tipi di relazioni che possono avere i set di dati.
- Cuando para cada valor de variabileIn statistica e matematica, un "variabile" è un simbolo che rappresenta un valore che può cambiare o variare. Esistono diversi tipi di variabili, e qualitativo, che descrivono caratteristiche non numeriche, e quantitativo, che rappresentano quantità numeriche. Le variabili sono fondamentali negli esperimenti e negli studi, poiché consentono l'analisi delle relazioni e dei modelli tra elementi diversi, facilitare la comprensione di fenomeni complessi.... Comune (diciamo variabile 'x') nel primo set di dati, il secondo set di dati ha un solo valore corrispondente per quella variabile comune "x", allora si chiama Dodici cinquantanove relazione.
- Quando per i valori della variabile comune (diciamo variabile 'y') nel primo set di dati, altri set di dati hanno più di un valore corrispondente per quella variabile comune "y", allora si chiama Uno a molti relazione.
- Quando entrambi i set di dati hanno più voci per lo stesso valore di variabile comune, allora si chiama Molti a molti relazione.
e SAS, possiamo fare unioni / fusioni attraverso varie forme, qui discuteremo i modi più comuni: Data Step e PROC SQL. Nel passaggio Dati, Utilizziamo l'istruzione merge per eseguire join, mentre in PROC SQL, scriviamo una query SQL. Analizziamo prima il passaggio dei dati:
PASSAGGI DATI
Sintassi:- Set di dati; Unisci Dataset1 Dataset2 Dataset3 ... Datasetn; Di CommonVariable1 CommonVariable2...... CommonVariablen; Correre;
Nota: – I set di dati devono essere ordinati per variabile (S) comune e nome, il tipo e la lunghezza della variabile comune devono essere gli stessi per tutti i set di dati di input.
Diamo un'occhiata ad alcuni scenari per ciascuna delle relazioni tra i set di dati di input.
Rapporto UNO a UNO
Palcoscenico 1 Nei seguenti set di dati di input, puoi vedere che esiste una relazione uno a uno tra queste due tabelle in ID studente. Ora vogliamo creare un set di dati. MARCHE, dove abbiamo tutti gli student_id unici con i rispettivi voti in matematica e fisica. Se student_id non è disponibile nella tabella Math, quindi math_marks dovrebbe avere un valore mancante e viceversa.
Soluzione utilizzando i passaggi dei dati: –
Come funziona:-
- SAS confronta entrambi i set di dati e crea un POS (Vettore di dati di programma) per tutte le variabili univoche e le inizializza con valori mancanti (il Program Data Vector è un intermediario tra i set di dati di input e di output). Nell'esempio attuale, Creerei un POV come questo:
- Leggi la prima osservazione dai set di dati di input e confronta i valori della variabile BY in entrambi i set di dati:
- se i valori sono uguali, viene confrontato con il valore della variabile BY in POS.
- se non lo stesso, le variabili POV vengono ripristinate con i valori mancanti e il valore dell'osservazione corrente viene copiato nel POV mentre l'altra osservazione rimane persa
- Se è lo stesso, Le variabili POS non vengono reinizializzate. Il valore disponibile dell'osservazione corrente viene aggiornato nel POS
- Successivamente, il puntatore del record si sposta all'osservazione successiva in entrambi i set di dati e, mentre l'istruzione RUN è in esecuzione, I valori PDV vengono passati al set di dati di output.
- Se il valore della variabile By non corrisponde, l'osservazione del set di dati con il valore più basso viene copiata in POS. Il puntatore del record del set di dati che ha un valore della variabile BY inferiore viene spostato all'osservazione e al passaggio successivi 2 (un) si ripete di nuovo.
- se i valori sono uguali, viene confrontato con il valore della variabile BY in POS.
- I passaggi precedenti vengono ripetuti fino a raggiungere l'EOF di entrambi i set di dati.
Puoi eseguire una prova per valutare il set di dati dei risultati.
Palcoscenico 2: – Sulla base dei set di dati di input dello scenario 1, vogliamo creare i seguenti set di dati di output.
Soluzione utilizzando i passaggi dei dati: – Scriviamo un codice simile allo scenario 1 con l'opzione IN. Al di sopra, puoi vedere che abbiamo usato l'opzione IN con entrambi i set di dati di input e assegnato i valori di questi alle variabili temporanee MATH e PHYS perché sono variabili temporanee, quindi non possiamo vederli nel set di dati di output.
ti ho mostrato la tabella (Dati PDV) che ha un valore variabile per tutte le osservazioni insieme alle variabili temporanee. Ora, in base al valore di queste variabili, podemos escribir un código para las operaciones de subconfiguración y ADERIRE"ADERIRE" è un'operazione fondamentale nei database che permette di combinare i record di due o più tabelle in base ad una relazione logica tra di esse. Esistono diversi tipi di JOIN, come INNER JOIN, LEFT JOIN e RIGHT JOIN, ognuno con le proprie caratteristiche e usi. Questa tecnica è essenziale per query complesse e informazioni più pertinenti e dettagliate provenienti da più fonti di dati.... según lo necesitemos:
- Se MATH e PHYS hanno valore 1, creará el primer conjunto de datos de salida y se llamará INNER JOINun "Giunto interno" es una operación en bases de datos que permite combinar filas de dos o más tablas, basándose en una condición de coincidencia específica. Este tipo de unión solo devuelve las filas que tienen correspondencias en ambas tablas, lo que resulta en un conjunto de resultados que refleja únicamente los datos relacionados. Es fundamental en consultas SQL para obtener información cohesiva y precisa de múltiples fuentes de datos.....
- Se MATH ha 1, creará un segundo conjunto de datos de salida y se llamará JOIN A SINISTRAIl "JOIN A SINISTRA" es una operación en SQL que permite combinar filas de dos tablas, mostrando todas las filas de la tabla izquierda y las coincidencias de la tabla derecha. Si no hay coincidencias, se rellenan con valores nulos. Esta herramienta es útil para obtener información completa, incluso cuando algunas relaciones son opcionales, facilitando así el análisis de datos de manera eficiente y coherente.....
- Se PHYS ha 1, creará un tercer conjunto de datos de salida y se llamará como DIRITTO JOINIl "DIRITTO JOIN" es una operación en bases de datos que permite combinar filas de dos tablas, asegurando que todas las filas de la tabla de la derecha se incluyan en el resultado, incluso si no hay coincidencias en la tabla de la izquierda. Este tipo de unión es útil para preservar información de la tabla secundaria, facilitando el análisis y la obtención de datos completos en consultas SQL....
- Se MATH e PHYS hanno 1, funcionará como ADESIONE COMPLETAIl "ADESIONE COMPLETA" es una operación en bases de datos que combina los resultados de dos tablas, mostrando todos los registros de ambas. Cuando hay coincidencias, se combinan los datos, pero también se incluyen los registros que no tienen correspondencia en la otra tabla, completando con valores nulos. Esta técnica es útil para obtener una visión completa de la información, permitiendo un análisis más exhaustivo de los datos en relación...., è stato risolto anche nella fase-1.
Relazione UNO a MOLTI
Palcoscenico – 3 Qui abbiamo due set di dati, Alunno e Esame e vogliamo creare un insieme di dati di output Marchi Trade.
Oltre ai set di dati di input, c'è una relazione uno a molti tra lo studente e l'esame. Ora, se vuoi creare punteggi di set di dati di output con osservazione individuale per ogni esame dello studente, questi appartengono al set di dati STUDENTE, vale a dire, Unione sinistra.
Soluzione utilizzando i passaggi dei dati: –
Allo stesso modo, possiamo eseguire operazioni di inner join, giusto e completo per una relazione uno a molti utilizzando l'operatore IN.
Rapporto MOLTI a MOLTI
Palcoscenico 4: Crea set di dati di output che hanno tutti i join basati su un campo comune. Puoi anche vedere che entrambi i set di dati di input hanno una relazione molti a molti.
I passaggi dei dati non creano una relazione MOLTO a MOLTI, perché non forniscono output come prodotto cartesiano. Quando uniamo la tabella A e la tabella B utilizzando i passaggi dei dati, l'output è simile alla seguente istantanea.
Abbiamo già visto, Come possiamo utilizzare i passaggi dei dati per unire due o più set di dati che hanno una qualsiasi delle relazioni?, tranne MOLTI a MOLTI? Ora vedremo i metodi PROC SQL per avere una soluzione per requisiti simili.
PROC SQL
Per comprendere la metodologia di join in SQL, dobbiamo prima capire il prodotto cartesiano. Il prodotto cartesiano è una query che ha più tabelle nella clausola from e produce tutte le possibili combinazioni di righe dalle tabelle di input. Se abbiamo due tavoli con 2 e 4 record rispettivamente, utilizzando il prodotto cartesiano, abbiamo un tavolo con 2 X 4 = 8 record.
I join SQL funzionano per ciascuna delle relazioni tra i set di dati (uno per uno, uno a molti e molti a molti). Vediamo come funziona con i tipi di join.
Sintassi:-
Si prega di selezionare Colonna-1, Colonna-2,… Colonna-n di table1 GIUNTO INTERNO / SINISTRA / GIUSTO / COMPLETOcapaz2 SU Condizione di unione ;
Nota:-
- Le tabelle possono essere ordinate o meno per variabili comuni.
- Il nome delle variabili comuni potrebbe non essere simile, ma deve essere simile per lunghezza e tipo.
- Funziona con un massimo di due tabelle.
Risolviamo i requisiti di cui sopra utilizzando PROC SQL.
Palcoscenico 1 :- Questo era un esempio di FULL Join, dove tutti gli Student_ID erano richiesti nel set di dati di output con i rispettivi flag MATH e PHYSICS.
Su nel set di dati di output, puoi vedere che manca Student_ID per quegli studenti che si sono presentati solo per l'esame di fisica. Per risolverlo useremo una funzione COALESCE. Restituisce il valore del primo argomento che non manca tra le variabili date.
Sintassi:-
COALESCE (argomento-1, argomento-2,… ..argomento-n)
Modifichiamo il codice sopra: –
Palcoscenico 2: – Questo era un esempio di INNER, Unisciti a sinistra e a destra. Qui stiamo risolvendo per Inner Join. Nello stesso modo, possiamo fare per la giunzione sinistra e destra.
Palcoscenico -3 Questo era un problema vincolante sinistro per una relazione UNO a MOLTI.
Palcoscenico -4 Questo era un problema di relazione Molti a MOLTI.. Abbiamo già discusso che SQL può produrre un prodotto cartesiano che contiene tutte le combinazioni di record tra due tabelle.
Sopra abbiamo visto Proc SQL unirsi / unire i set di dati.
Nota finale: –
In questa serie di articoli sulla combinazione di set di dati in SAS, analizziamo vari metodi per combinare set di dati come l'aggiunta, concatenare, unire, fusibile. In particolare in questo articolo, ne discutiamo a seconda della relazione tra i set di dati, vari tipi di join e come possiamo risolverli in base a diversi scenari. Abbiamo usato due metodi (Passi dati y PROC SQL) per ottenere risultati. Vedremo l'efficacia di questi metodi in uno dei prossimi articoli..
Questa serie ti è stata utile?? Abbiamo semplificato un argomento complesso come combinare set di dati e cercato di presentarlo in modo comprensibile. Se hai bisogno di ulteriore aiuto con la combinazione di set di dati, sentiti libero di fare le tue domande attraverso i commenti qui sotto.
PS Hai aderito?? Discussione di Vidhya analitico ancora? Se non è così, si stanno perdendo molti dibattiti sulla scienza dei dati. Queste sono alcune delle discussioni che si svolgono in SAS:
1. Seleziona le variabili e trasferiscile in un nuovo set di dati in SAS
2. Importa il primo 20 record da Excel a SAS
3. Dove l'istruzione non funziona in SAS