It shows how to use [R] (https://www.r-roject.org/) and the package ** RTransposer ** to import the example (1) supplied by Alter in the github repositiry “Transposer”

Preparacion de los datos fuente.

Download the data from the github repository: ICPSR / IDS corresponding to example-1 (UG_example_1) and unzip the book excell UG_Example_1_v10.xlsx

We extract the data from the data sheets * parent * and * children * and store them in an object of type * data.table *. Next we create some auxiliary tables derived from the two original source tables:

Si es necesario se crea funciones auxiliares para la carga, que transformaran los datos originales almacenado en las tablas fuentes:

Especificaciones de las regla de importanción

Las transformaciones que se aplicaran sobre las variables de los fichero fuentes se define en un libro excell con una estructura especifica (Se incluyen un ejemplo de este libro en el directorio inst/extdata/ del paquete) para optener los registros que compone el IDS.

Generación de la BD en formato IDS

A continuación se aplica la función TRtransposer::tranposer, con el parámetro el nombre del fichero excell con las distintas transformaciones a aplicar sobre las tablas de datos, previamente cargadas en el ambiente global de R (*.GlobalEnv).

La ejecución del código anterior produce una lista con 5 objeto del tipo data.table y con la nomenclatura y estructura especificado en el formato IDS.

A partir de este objeto se pueden obtener las 5 tablas en fichero de texto del tipo CSV, que pueden ser facilmente leídos por programas de base de dato o análisis estadístico.

Las siguientes ordenes realizan esta exportación

### Muestra resumen estadistico de outcomes::
print(paste('== INDIVIDUAL == ')) ;  print(outcomes$INDIVIDUAL[,.N,keyby=Type])
#> [1] "== INDIVIDUAL == "
#>                  Type   N
#>  1:        BIRTH_DATE 565
#>  2:    BIRTH_LOCATION 565
#>  3:        DEATH_DATE 200
#>  4:    DEATH_LOCATION 200
#>  5:        FIRST_NAME 565
#>  6:         LAST_NAME 565
#>  7:     MARRIAGE_DATE 200
#>  8: MARRIAGE_LOCATION 200
#>  9:        OCCUPATION 200
#> 10:               SEX 200
print(paste('== CONTEXT == ')); print(outcomes$CONTEXT[,.N,keyby=Type])
#> [1] "== CONTEXT == "
#>     Type   N
#> 1: LEVEL 174
#> 2:  NAME  74
print(paste('== INDIV_INDIV == ')); print(outcomes$INDIV_INDIV[,.N,keyby=Relation])
#> [1] "== INDIV_INDIV == "
#>    Relation   N
#> 1:    Child 730
#> 2:   Father 365
#> 3:  Husband 100
#> 4:   Mother 365
#> 5:     Wife 100
print(paste('==  INDIV_CONTEXT == ')); print(outcomes$INDIV_CONTEXT[,.N,keyby=Relation])
#> [1] "==  INDIV_CONTEXT == "
#>    Relation   N
#> 1:    Child 365
#> 2:  Husband 100
#> 3:     Wife 100
print(paste('==  CONTEXT_CONTEXT == ')); print(outcomes$CONTEXT_CONTEXT[,.N,keyby=Relation])
#> [1] "==  CONTEXT_CONTEXT == "
#>                         Relation   N
#> 1:                                 1
#> 2:        Municipality and State   1
#> 3: Neighborhood and Municipality  72
#> 4:        Union and Neighborhood 665

## Almacena resultados en tablas CSV con resultados
for (i in  names(outcomes)) {
  write.csv(outcomes[[i]],file=paste0(tmpLoc,'/',i,'.CSV'),na='',row.names=FALSE)
}
print(tmpLoc)
#> [1] "/tmp/RtmpoMY5YO"
dir(path = tmpLoc,pattern = '*.CSV')
#> [1] "CONTEXT_CONTEXT.CSV" "CONTEXT.CSV"         "INDIV_CONTEXT.CSV"  
#> [4] "INDIV_INDIV.CSV"     "INDIVIDUAL.CSV"

Borramos los ficheros de prueba …


file.remove(paste0(tmpLoc,'/',names(outcomes),'.CSV'))
file.remove(paste0(tmpLoc,'/','UG_Example_1_v10.xlsx'))