Práctica No. 9 Función que genera nombres aleatorios

Objetivo: Función que genera nombres completos

Creando los dos vectores

nombres <- c('RUBEN', 'CARLOS', 'PATY', 'ALEJANDRO', 'LUISA',
             'ROGELIO', 'ANDREA', 'FABIOLA', 'MARIA', 'FERNANDO')
apellidos <- c('GONZALEZ', 'MEDINA', 'ROBLES', 'JUAREZ', 'RUIZ',
               'PIZARRO', 'RODRIGUEZ', 'CARRETE', 'CAMPOS', 'GOMEZ')

nombres ; apellidos
##  [1] "RUBEN"     "CARLOS"    "PATY"      "ALEJANDRO" "LUISA"    
##  [6] "ROGELIO"   "ANDREA"    "FABIOLA"   "MARIA"     "FERNANDO"
##  [1] "GONZALEZ"  "MEDINA"    "ROBLES"    "JUAREZ"    "RUIZ"     
##  [6] "PIZARRO"   "RODRIGUEZ" "CARRETE"   "CAMPOS"    "GOMEZ"

Generando mil nombre y mil apellidos

milnombres <- sample(nombres, 1000, replace = TRUE)
milapellidos <- sample(apellidos, 1000, replace = TRUE)

Generando 10 nombres y apellidos completos

Nombre, Apellido Paterno y Apellido Materno

noms <- sample(milnombres, 10)
apesP <- sample(milapellidos, 10)
apesM <- sample(milapellidos, 10)

nombresCompletos <- data.frame(noms, apesP, apesM)

colnames(nombresCompletos) <- c("Nombre", "Apellido.P", "Apellido.M")
nombresCompletos
##      Nombre Apellido.P Apellido.M
## 1   ROGELIO      GOMEZ     CAMPOS
## 2   FABIOLA     ROBLES     MEDINA
## 3   ROGELIO     JUAREZ     ROBLES
## 4      PATY       RUIZ    PIZARRO
## 5    CARLOS   GONZALEZ    CARRETE
## 6  FERNANDO     ROBLES     CAMPOS
## 7     LUISA   GONZALEZ    CARRETE
## 8   FABIOLA   GONZALEZ    CARRETE
## 9    CARLOS     ROBLES    PIZARRO
## 10   ANDREA      GOMEZ    PIZARRO

Creando una función

generaNombres <- function(losnombres, losapellidos, cuantos) {
  
  milnombres <- sample(nombres, 1000, replace = TRUE)
  milapellidos <- sample(apellidos, 1000, replace = TRUE)
  
  noms <- sample(milnombres, cuantos)
  apesP <- sample(milapellidos, cuantos)
  apesM <- sample(milapellidos, cuantos)
  
  nombresCompletos <- data.frame(noms, apesP, apesM)
  
  colnames(nombresCompletos) <- c("Nombre", "Apellido.P", "Apellido.M")
  nombresCompletos
}

Llamando la función creada

personas <- generaNombres(nombres, apellidos, 100)
personas
##        Nombre Apellido.P Apellido.M
## 1      ANDREA     CAMPOS  RODRIGUEZ
## 2      CARLOS     CAMPOS    PIZARRO
## 3       RUBEN  RODRIGUEZ  RODRIGUEZ
## 4        PATY     CAMPOS     CAMPOS
## 5     ROGELIO     MEDINA    PIZARRO
## 6        PATY  RODRIGUEZ  RODRIGUEZ
## 7     FABIOLA       RUIZ     JUAREZ
## 8   ALEJANDRO     ROBLES      GOMEZ
## 9       RUBEN    PIZARRO       RUIZ
## 10      MARIA     ROBLES   GONZALEZ
## 11      RUBEN     MEDINA  RODRIGUEZ
## 12      MARIA     CAMPOS     JUAREZ
## 13      LUISA    PIZARRO       RUIZ
## 14       PATY      GOMEZ     JUAREZ
## 15      RUBEN   GONZALEZ   GONZALEZ
## 16      LUISA     ROBLES      GOMEZ
## 17     CARLOS   GONZALEZ   GONZALEZ
## 18       PATY      GOMEZ    PIZARRO
## 19  ALEJANDRO  RODRIGUEZ    PIZARRO
## 20   FERNANDO  RODRIGUEZ    PIZARRO
## 21  ALEJANDRO     ROBLES  RODRIGUEZ
## 22      RUBEN    PIZARRO     MEDINA
## 23    ROGELIO    CARRETE     MEDINA
## 24    ROGELIO      GOMEZ   GONZALEZ
## 25     ANDREA     JUAREZ     MEDINA
## 26      LUISA     MEDINA     ROBLES
## 27  ALEJANDRO  RODRIGUEZ  RODRIGUEZ
## 28   FERNANDO       RUIZ      GOMEZ
## 29   FERNANDO   GONZALEZ    CARRETE
## 30       PATY    PIZARRO    PIZARRO
## 31      RUBEN    PIZARRO     CAMPOS
## 32      MARIA     JUAREZ       RUIZ
## 33      RUBEN  RODRIGUEZ       RUIZ
## 34    FABIOLA     CAMPOS    CARRETE
## 35     ANDREA     CAMPOS    PIZARRO
## 36     CARLOS     CAMPOS     MEDINA
## 37   FERNANDO    CARRETE     CAMPOS
## 38     ANDREA       RUIZ      GOMEZ
## 39     ANDREA    CARRETE    CARRETE
## 40   FERNANDO    PIZARRO     CAMPOS
## 41      RUBEN     JUAREZ      GOMEZ
## 42     ANDREA     CAMPOS  RODRIGUEZ
## 43   FERNANDO     MEDINA    PIZARRO
## 44     CARLOS      GOMEZ     CAMPOS
## 45    ROGELIO    PIZARRO    CARRETE
## 46     ANDREA     JUAREZ     MEDINA
## 47     CARLOS    CARRETE     CAMPOS
## 48     CARLOS   GONZALEZ       RUIZ
## 49  ALEJANDRO     ROBLES     ROBLES
## 50   FERNANDO   GONZALEZ     CAMPOS
## 51      LUISA   GONZALEZ      GOMEZ
## 52     ANDREA     ROBLES      GOMEZ
## 53      LUISA     MEDINA     CAMPOS
## 54     CARLOS     CAMPOS    CARRETE
## 55   FERNANDO  RODRIGUEZ   GONZALEZ
## 56    ROGELIO  RODRIGUEZ    PIZARRO
## 57      RUBEN     ROBLES   GONZALEZ
## 58      RUBEN     JUAREZ    PIZARRO
## 59      MARIA   GONZALEZ     MEDINA
## 60      MARIA   GONZALEZ   GONZALEZ
## 61  ALEJANDRO     CAMPOS     JUAREZ
## 62    ROGELIO  RODRIGUEZ       RUIZ
## 63       PATY    CARRETE    PIZARRO
## 64       PATY    PIZARRO      GOMEZ
## 65   FERNANDO      GOMEZ    PIZARRO
## 66      LUISA       RUIZ     ROBLES
## 67      MARIA   GONZALEZ   GONZALEZ
## 68    FABIOLA     ROBLES  RODRIGUEZ
## 69      RUBEN     MEDINA     CAMPOS
## 70    ROGELIO     JUAREZ   GONZALEZ
## 71    FABIOLA     ROBLES     CAMPOS
## 72      RUBEN    PIZARRO     CAMPOS
## 73     ANDREA   GONZALEZ   GONZALEZ
## 74    ROGELIO  RODRIGUEZ       RUIZ
## 75      RUBEN     MEDINA     MEDINA
## 76     ANDREA     ROBLES  RODRIGUEZ
## 77     CARLOS     MEDINA    PIZARRO
## 78    ROGELIO    PIZARRO     MEDINA
## 79   FERNANDO       RUIZ  RODRIGUEZ
## 80    FABIOLA    CARRETE     JUAREZ
## 81    ROGELIO   GONZALEZ  RODRIGUEZ
## 82     CARLOS     ROBLES     ROBLES
## 83      LUISA  RODRIGUEZ    CARRETE
## 84      MARIA      GOMEZ  RODRIGUEZ
## 85     ANDREA   GONZALEZ     CAMPOS
## 86      MARIA      GOMEZ     ROBLES
## 87      LUISA   GONZALEZ    PIZARRO
## 88     ANDREA   GONZALEZ      GOMEZ
## 89      MARIA       RUIZ       RUIZ
## 90     ANDREA     MEDINA     ROBLES
## 91      LUISA    PIZARRO     JUAREZ
## 92   FERNANDO    PIZARRO       RUIZ
## 93      MARIA   GONZALEZ     MEDINA
## 94     CARLOS     JUAREZ    PIZARRO
## 95       PATY       RUIZ       RUIZ
## 96    ROGELIO      GOMEZ    PIZARRO
## 97     CARLOS     CAMPOS    PIZARRO
## 98   FERNANDO     MEDINA     JUAREZ
## 99       PATY    PIZARRO     MEDINA
## 100     RUBEN      GOMEZ  RODRIGUEZ

Qué hace la función

A través de la función “sample” de asignaron mil valores de manera aleatoria para nombre, apellido paterno y apellido materno. A continuación se tomó una muestra representativa de 10 registros de dichos valores que nos sirvieron para generar una base de datos con los nombres completos, es decir con nombre y apelllidos paterno y materno y se les dio formato para que aparecieran en columnas etiquetadas.

Para finalizar, se creó una función que nos genera 1,000 nombres completos para generar una base de datos, misma que se publica para ver los atributos de cada registro.