R és un llenguatge de programació i un entorn de programari que s'utilitza principalment per a la computació estadística i els gràfics. Proporciona una àmplia gamma d'eines per a la manipulació de dades, l'anàlisi de dades, la visualització de dades i el modelatge estadístic.
La fusió de dades és una tasca d'anàlisi i manipulació de dades. A R hi ha diverses maneres de combinar marcs de dades, utilitzant el 'fusionar ()' funció de la base R, utilitzant el 'dplyr' paquet, i el 'taula.dades' paquet. En aquest tutorial, utilitzarem les tres maneres anteriors de combinar dades amb R.
1. Utilitzant 'merge ()' de la base R:
La funció merge() a la base R ens ajuda a combinar dos o més marcs de dades basats en columnes comunes. Realitza diversos tipus d'unions, com ara unió interna, unió esquerra, unió dreta i unió completa.
Sintaxi:
merged_df <- merge(x,y,by = 'common_column',..)>
- 'x' i ‘y’ són els marcs de dades que voleu combinar.
- 'per' especifica les columnes comunes sobre les quals es realitzarà la fusió.
- Arguments addicionals com 'tot.x' , all.y’ i 'tots' controlar el tipus d'unió que s'ha de realitzar.
Exemple:
Considereu dos marcs de dades 'df1' i 'df2'
R
df1 <->data.frame>(ID =>c>(1, 2, 3, 4),> >Name =>c>(>'A'>,>'B'>,>'C'>,>'D'>),> >Age =>c>(25, 30, 35, 40))> df2 <->data.frame>(ID =>c>(2, 3, 4, 5),> >Occupation =>c>(>'Engineer'>,>'Teacher'>,>'Doctor'>,>'Lawyer'>),> >Salary =>c>(5000, 4000, 6000, 7000))> |
>
>
Vegem exemples de realització de diversos tipus d'unions mitjançant la funció 'merge ()':
1. Unió interna (comportament per defecte):
R
inner_join <->merge>(df1, df2, by =>'ID'>)> print>(inner_join)> |
>
>
Sortida:
ID Name Age Occupation Salary 1 2 B 30 Engineer 5000 2 3 C 35 Teacher 4000 3 4 D 40 Doctor 6000>
El marc de dades 'inner_join' resultant només inclourà les files comunes on 'ID' està present a tant 'df1' com 'df2'.
2. Unió a l'esquerra ( 'all.x=TRUE' ):
R
left_join <->merge>(df1, df2, by =>'ID'>, all.x =>TRUE>)> print>(left_join)> |
>
programa d'herència en python
>
Sortida:
ID Name Age Occupation Salary 1 1 A 25 NA 2 2 B 30 Engineer 5000 3 3 C 35 Teacher 4000 4 4 D 40 Doctor 6000>
El marc de dades 'left_join' resultant inclourà totes les files de 'df1' i les files coincidents de 'df2'. Les files que no coincideixen de 'df2' tindran un valor 'NA'.
3. Uneix-te a la dreta ( 'all.y=TRUE' ):
R
right_join <->merge>(df1, df2, by =>'ID'>, all.y =>TRUE>)> print>(right_join)> |
>
>
Sortida:
ID Name Age Occupation Salary 1 2 B 30 Engineer 5000 2 3 C 35 Teacher 4000 3 4 D 40 Doctor 6000 4 5 NA Lawyer 7000>
El marc de dades 'right_join' resultant inclourà totes les files de 'df2' i les files coincidents de 'df1'. Les files que no coincideixen de 'df1' tindran valors 'NA'.
4. Unió exterior completa ( 'tot = VERTADER' )
R
full_join <->merge>(df1, df2, by =>'ID'>, all =>TRUE>)> print>(full_join)> |
>
polimorfisme en java
>
Sortida:
ID Name Age Occupation Salary 1 1 A 25 NA 2 2 B 30 Engineer 5000 3 3 C 35 Teacher 4000 4 4 D 40 Doctor 6000 5 5 NA Lawyer 7000>
El marc de dades 'full_join' resultant inclourà totes les files de 'df1' i 'df2'. Els valors que no coincideixen tindran valors 'NA'.
2. Utilitzant el paquet 'dplyr':
El paquet 'dplyr' proporciona un conjunt de funcions per a la manipulació de dades, inclosa la fusió de marcs de dades.
La funció principal per combinar-se a 'dplyr' és 'unir-se ()', que admet diversos tipus d'unions.
Sintaxi:
merged_df<- join(x,y,by='common_column',type='type_of_join')>
- 'x' i ‘y’ són els marcs de dades que s'han de combinar.
- 'per' especifica les columnes comunes sobre les quals s'ha de realitzar la fusió
- 'tipus_d'unió' pot ser 'interior', 'esquerra', 'dreta' o 'complet' per especificar el tipus d'unió.
Exemple:
Instal·leu el dplyr() empaquetar i crear dos marcs de dades, 'df1' i 'df2'.
R
library>(dplyr)> df1 <->data.frame>(ID =>c>(1, 2, 3, 4),> >Name =>c>(>'A'>,>'B'>,>'C'>,>'D'>),> >Age =>c>(20, 30, 40, 50))> df2 <->data.frame>(ID =>c>(2, 3, 4, 5),> >Occupation =>c>(>'Engineer'>,>'Teacher'>,>'Doctor'>,>'Lawyer'>),> >Salary =>c>(2000, 4000, 6000, 7000))> |
>
>
Vegem exemples de realització de diversos tipus d'unions mitjançant les funcions 'dplyr':
1. Combinació interna:
edat de mia khalifa
R
inner_join <->inner_join>(df1, df2, by =>'ID'>)> print>(inner_join)> |
>
>
Sortida:
ID Name Age Occupation Salary 1 2 B 30 Engineer 2000 2 3 C 40 Teacher 4000 3 4 D 50 Doctor 6000>
El marc de dades 'inner_join' resultant només inclourà files comunes on 'ID' està present tant a 'df1' com a 'df2'.
2. Unió a l'esquerra:
R
left_join <->left_join>(df1, df2, by =>'ID'>)> print>(left_join)> |
>
>
Sortida:
ID Name Age Occupation Salary 1 1 A 20 NA 2 2 B 30 Engineer 2000 3 3 C 40 Teacher 4000 4 4 D 50 Doctor 6000>
El marc de dades 'left_join' resultant inclourà totes les files de 'df1' i la files coincidents de 'df2' . Les files que no coincideixen de 'df2' tindran valors 'NA'.
3. Uneix-te a la dreta:
R
right_join <->right_join>(df1, df2, by =>'ID'>)> print>(right_join)> |
>
>
Sortida:
ID Name Age Occupation Salary 1 2 B 30 Engineer 2000 2 3 C 40 Teacher 4000 3 4 D 50 Doctor 6000 4 5 NA Lawyer 7000>
El marc de dades 'right_join' resultant inclourà totes les files de 'df2' i la files coincidents de 'df1'. Les files que no coincideixen de 'df1' tindran valors 'NA'.
4. Unió exterior completa:
R
topologies
full_join <->full_join>(df1, df2, by =>'ID'>)> print>(full_join)> |
>
>
Sortida:
ID Name Age Occupation Salary 1 1 A 20 NA 2 2 B 30 Engineer 2000 3 3 C 40 Teacher 4000 4 4 D 50 Doctor 6000 5 5 NA Lawyer 7000>
El marc de dades 'full_join' resultant inclourà totes les files de 'df1' i 'df2' . Les files que no coincideixen tindran valors 'NA'.
3. Utilitzant el paquet 'data.table':
El paquet 'data.table' ofereix un enfocament eficient i ràpid de la manipulació de dades. Proporciona la funció 'merge ()'. És similar al de la base R però optimitzat per a la velocitat.
Sintaxi:
merged_dt <- merge(x, y, by = 'common_column', ...)>
- 'x' i ‘y’ són els marcs de dades que s'han de combinar.
- 'per' especifica les columnes comunes sobre les quals es realitzarà la fusió.
- Arguments addicionals com ‘all.x’, ‘all.y’ i 'tots' que controla el tipus d'unió.
Exemple:
Instal·leu la biblioteca data.table i creeu dues taules de dades, 'dt1' i 'dt2'.
R
library>(data.table)> dt1 <->data.table>(ID =>c>(1, 2, 3, 4),> >Name =>c>(>'A'>,>'B'>,>'C'>,>'D'>),> >Age =>c>(25, 30, 35, 40))> dt2 <->data.table>(ID =>c>(2, 3, 4, 5),> >Occupation =>c>(>'Engineer'>,>'Teacher'>,>'Doctor'>,>'Lawyer'>),> >Salary =>c>(5000, 4000, 6000, 7000))> |
>
>
Vegem exemples de realització de diversos tipus de combinacions mitjançant la funció 'merge ()' del paquet 'data.table':
1. Unió interna (comportament per defecte):
R
inner_join <->merge>(df1, df2, by =>'ID'>)> print>(inner_join)> |
>
>
Sortida:
ID Name Age Occupation Salary 1 2 B 30 Engineer 2000 2 3 C 40 Teacher 4000 3 4 D 50 Doctor 6000>
El marc de dades 'inner_join' resultant només inclourà files comunes on 'ID' està present tant a 'df1' com a 'df2'.
2. Unió a l'esquerra ('all.x = TRUE'):
R
ordena la llista de matrius java
left_join <->merge>(df1, df2, by =>'ID'>, all.x =>TRUE>)> print>(left_join)> |
>
>
Sortida:
ID Name Age Occupation Salary 1 1 A 20 NA 2 2 B 30 Engineer 2000 3 3 C 40 Teacher 4000 4 4 D 50 Doctor 6000>
El marc de dades 'left_join' resultant inclourà tots No coincideixen de 'df1' i la files coincidents de 'df2'. Les files que no coincideixen de 'df2' tindran valors 'NA'.
3. Unir-se a la dreta ('all.y = TRUE'):
R
right_join <->merge>(df1, df2, by =>'ID'>, all.y =>TRUE>)> print>(right_join)> |
>
>
Sortida:
ID Name Age Occupation Salary 1 2 B 30 Engineer 2000 2 3 C 40 Teacher 4000 3 4 D 50 Doctor 6000 4 5 NA Lawyer 7000>
El marc de dades 'right_join' resultant inclourà tots No coincideixen files de 'df2' i les files coincidents de 'df1'. Les files que no coincideixen de 'df1' tindran valors 'NA'.
3. Unió externa completa ('tot = TRUE'):
R
full_join <->merge>(df1, df2, by =>'ID'>, all =>TRUE>)> print>(full_join)> |
>
>
Sortida:
ID Name Age Occupation Salary 1 1 A 20 NA 2 2 B 30 Engineer 2000 3 3 C 40 Teacher 4000 4 4 D 50 Doctor 6000 5 5 NA Lawyer 7000>
El marc de dades 'full_join' resultant inclourà tots No coincideixen files tant de 'df1' com de 'df2'. Les files que no coincideixen tindran valors 'NA'.
Un dels avantatges d'utilitzar 'dplyr' i 'data.table' és que proporcionen una sintaxi més concisa i llegible per a la manipulació de dades en comparació amb la base R.
Resum:
- 'merge()' proporciona una funció de propòsit general per combinar marcs de dades.
- 'dplyr' se centra en la fusió amb un enfocament en la llegibilitat i la facilitat d'ús.
- ‘dades. table' proporciona una manera ràpida i eficient de gestionar grans conjunts de dades amb un rendiment optimitzat.
- Hem de triar l'enfocament en funció de la complexitat de la tasca i dels requisits de realització.