Capítulo 4 Unión de registros de varios data frames
4.1 Punto de partida
Disponemos de 3 data frames:
- dfFus01: data frame con los registros comunes a lso dos data frames fusionados
- Dimensiones: dfFus01[16 Filas, 3 Columnas]
- Los nombres de las columnas son IdL, Ltr, Nmr
- dfDifL: data frame con los datos de dfLx no incluidos en la fusión
- Dimensiones: dfDifL[34 Filas, 2 Columnas]
- Los nombres de las columnas son IdL, Ltr
- dfDifN: data frame con los datos de dfNy no incluidos en la fusión
- Dimensiones: dfDifN[17 Filas, 2 Columnas]
- Los nombres de las columnas son IdN, Nmr
La columna IdL de dffus01 se corresponde con la columna IdL de dfDifL y con la columna IdN de dfNy.
La columna Ltr de dfFus01 se corresponde con la columna Ltr de dfDifL. En dfDifN no tiene columna correspondiente.
La columna Nmr de dfFus01 n tiene columna correspondiente de dfDifL, Se corresponde con la columna Nmr de dfDifN.
4.2 Adecuación de los data frames
4.2.1 Data frame dfDifL –> dfDifLm
El data frame dfDifL tiene 2 columnas que se corresponden con 2 columnas de dfFus01. Para poder unirlos, es necesario añadir una nueva columna que se corresponda con dfFus01$Nmr.
A partir de dfDifL se genera un nuevo data frame dfDifLm en el que se añade una nueva columna Nmr con cuyo valor es NA.
paste0("dfDifLm[", nrow(dfDifLm), " Filas, ", ncol(dfDifLm), " Columnas]")
- dfDifLm[34 Filas, 3 Columnas]
- Columnas de dfDifLm
colnames(dfDifLm)
–> IdL, Ltr, Nmr
Las columnas de dfDifLm coinciden en nombre y orden con las columnas de dfFus01
## IdL Ltr Nmr
## 2 2 Coliflor NA
## 4 4 Agricultor NA
## 8 8 Agricultor NA
## 10 10 Coliflor NA
## 14 14 Coliflor NA
## 16 16 Agricultor NA
## 20 20 Agricultor NA
## 22 22 Coliflor NA
## 26 26 Coliflor NA
## 28 28 Agricultor NA
## IdL Ltr Nmr
## Min. : 2.0 Length:34 Mode:logical
## 1st Qu.: 26.5 Class :character NA's:34
## Median : 51.0 Mode :character
## Mean : 51.0
## 3rd Qu.: 75.5
## Max. :100.0
4.2.2 Data frame dfDifN –> dfDifNm
El data frame dfDifN tiene 2 columnas que se corresponden con 2 columnas de dfFus01. Para poder unirlos, es necesario añadir una nueva columna que se corresponda con dfFus01$Ltr.
A partir de dfDifN se genera un nuevo data frame dfDifNm en el que se añade una nueva columna Lmr con cuyo valor es NA.m
paste0("dfDifNm[", nrow(dfDifNm), " Filas, ", ncol(dfDifNm), " Columnas]")
- dfDifNm[17 Filas, 3 Columnas]
- Columnas de dfDifLm
colnames(dfDifNm)
–> IdL, Ltr, Nmr
Las columnas de dfDifNm coinciden en nombre y orden con las columnas de dfFus01
## IdL Ltr Nmr
## 1 3 NA 1
## 2 9 NA 3
## 3 15 NA 4
## 4 21 NA 6
## 5 27 NA 7
## 6 33 NA 9
## 7 39 NA 10
## 8 45 NA 12
## 9 51 NA 13
## 10 57 NA 15
## IdL Ltr Nmr
## Min. : 3 Mode:logical Min. : 1.00
## 1st Qu.:27 NA's:17 1st Qu.: 7.00
## Median :51 Median :13.00
## Mean :51 Mean :13.24
## 3rd Qu.:75 3rd Qu.:19.00
## Max. :99 Max. :25.00
4.3 Unión de los registros de los 3 data frames en uno
paste0("dfRecop[", nrow(dfRecop), " Filas, ", ncol(dfRecop), " Columnas]")
- dfRecop[67 Filas, 3 Columnas]
- Columnas de dfRecop
colnames(dfRecop)
–> IdL, Ltr, Nmr
## IdL Ltr Nmr
## 1 6 Coliflor 2
## 2 12 Agricultor 3
## 3 18 Coliflor 5
## 4 24 Agricultor 6
## 5 30 Coliflor 8
## 6 36 Agricultor 9
## 7 42 Coliflor 11
## 8 48 Agricultor 12
## 9 54 Coliflor 14
## 10 60 Agricultor 15
## 11 66 Coliflor 17
## 12 72 Agricultor 18
## 13 78 Coliflor 20
## 14 84 Agricultor 21
## 15 90 Coliflor 23
## 16 96 Agricultor 24
## 21 2 Coliflor NA
## 41 4 Agricultor NA
## 81 8 Agricultor NA
## 101 10 Coliflor NA
## 141 14 Coliflor NA
## 161 16 Agricultor NA
## 20 20 Agricultor NA
## 22 22 Coliflor NA
## 26 26 Coliflor NA
## 28 28 Agricultor NA
## 32 32 Agricultor NA
## 34 34 Coliflor NA
## 38 38 Coliflor NA
## 40 40 Agricultor NA
## 44 44 Agricultor NA
## 46 46 Coliflor NA
## 50 50 Coliflor NA
## 52 52 Agricultor NA
## 56 56 Agricultor NA
## 58 58 Coliflor NA
## 62 62 Coliflor NA
## 64 64 Agricultor NA
## 68 68 Agricultor NA
## 70 70 Coliflor NA
## 74 74 Coliflor NA
## 76 76 Agricultor NA
## 80 80 Agricultor NA
## 82 82 Coliflor NA
## 86 86 Coliflor NA
## 88 88 Agricultor NA
## 92 92 Agricultor NA
## 94 94 Coliflor NA
## 98 98 Coliflor NA
## 100 100 Agricultor NA
## 18 3 <NA> 1
## 23 9 <NA> 3
## 31 15 <NA> 4
## 42 21 <NA> 6
## 51 27 <NA> 7
## 61 33 <NA> 9
## 71 39 <NA> 10
## 83 45 <NA> 12
## 91 51 <NA> 13
## 102 57 <NA> 15
## 111 63 <NA> 16
## 121 69 <NA> 18
## 131 75 <NA> 19
## 142 81 <NA> 21
## 151 87 <NA> 22
## 162 93 <NA> 24
## 17 99 <NA> 25
## IdL Ltr Nmr
## Min. : 2.0 Length:67 Min. : 1.00
## 1st Qu.: 26.5 Class :character 1st Qu.: 7.00
## Median : 51.0 Mode :character Median :13.00
## Mean : 51.0 Mean :13.12
## 3rd Qu.: 75.5 3rd Qu.:19.00
## Max. :100.0 Max. :25.00
## NA's :34
## Length Class Mode
## 67 character character
## [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [25] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [37] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [49] FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [61] TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 1.00 7.00 13.00 13.12 19.00 25.00 34
## [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [13] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [25] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [37] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [49] TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [61] FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## function (x) .Primitive("is.na")