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")