Conjuntos en R

Generar nombres

nombres <- c("Juan", "Paco", "Lalo", "Memo", "Paty", "Laura", "Oscar", "Luis", "Ernesto", "Lupita", "Carmen", "Eduardo", "Ana", "Luisa", "Maria", "Rosario", "Margarita", "Margarito", "Sandra", "Sandro", "Rubén", "Gabino", "Patricia", "Salvador", "Romualdo", "Saul", "Raul", "Gerardo", "Antonio", "Yuri", "Aracely", "Jeorgina", "Javier", "Lucy")

Ver los nombres ordenados

nombres <- sort(nombres)
nombres
##  [1] "Ana"       "Antonio"   "Aracely"   "Carmen"    "Eduardo"   "Ernesto"  
##  [7] "Gabino"    "Gerardo"   "Javier"    "Jeorgina"  "Juan"      "Lalo"     
## [13] "Laura"     "Lucy"      "Luis"      "Luisa"     "Lupita"    "Margarita"
## [19] "Margarito" "Maria"     "Memo"      "Oscar"     "Paco"      "Patricia" 
## [25] "Paty"      "Raul"      "Romualdo"  "Rosario"   "Rubén"     "Salvador" 
## [31] "Sandra"    "Sandro"    "Saul"      "Yuri"

Numero de elementos o poblacion total

n <- length(nombres)
n
## [1] 34

Semilla para aleatoriadad en 100 para que se generen los mismos equipos

set.seed(100)

Generando participantes en equipos deportivos

Generando conjuntos: 15 en futbol, 10 en basquetbol, 6 en voleybol, 5 atletismo y 2 ajedrez

futbol <- sort(sample(nombres, 15))
basquetbol <- sort(sample(nombres,10))
voleybol <- sort(sample(nombres, 6))
atletismo <- sort(sample(nombres, 5))
ajedrez <- sort(sample(nombres, 2))

Ver integrantes de cada deporte

Futbol

futbol
##  [1] "Antonio"  "Carmen"   "Ernesto"  "Gabino"   "Jeorgina" "Juan"    
##  [7] "Lalo"     "Lucy"     "Oscar"    "Paco"     "Paty"     "Raul"    
## [13] "Romualdo" "Rosario"  "Rubén"

Basquetbol

basquetbol
##  [1] "Antonio"   "Aracely"   "Carmen"    "Gerardo"   "Lalo"      "Margarita"
##  [7] "Margarito" "Paty"      "Sandra"    "Yuri"

Voleybol

voleybol
## [1] "Carmen"   "Gabino"   "Memo"     "Paty"     "Romualdo" "Sandro"

Atletismo

atletismo
## [1] "Antonio" "Ernesto" "Juan"    "Luisa"   "Maria"

Ajedrez

ajedrez
## [1] "Rubén"    "Salvador"

##Unión de Conjuntos #### Los elementos que están en un conjunto agregando los que están en el otro conjunto #### Union Futbol y basquetbol

union(futbol, basquetbol)
##  [1] "Antonio"   "Carmen"    "Ernesto"   "Gabino"    "Jeorgina"  "Juan"     
##  [7] "Lalo"      "Lucy"      "Oscar"     "Paco"      "Paty"      "Raul"     
## [13] "Romualdo"  "Rosario"   "Rubén"     "Aracely"   "Gerardo"   "Margarita"
## [19] "Margarito" "Sandra"    "Yuri"

Union Futbol y voleybol

union(futbol, voleybol)
##  [1] "Antonio"  "Carmen"   "Ernesto"  "Gabino"   "Jeorgina" "Juan"    
##  [7] "Lalo"     "Lucy"     "Oscar"    "Paco"     "Paty"     "Raul"    
## [13] "Romualdo" "Rosario"  "Rubén"    "Memo"     "Sandro"

Union Futbol y atletismo

union(futbol, atletismo)
##  [1] "Antonio"  "Carmen"   "Ernesto"  "Gabino"   "Jeorgina" "Juan"    
##  [7] "Lalo"     "Lucy"     "Oscar"    "Paco"     "Paty"     "Raul"    
## [13] "Romualdo" "Rosario"  "Rubén"    "Luisa"    "Maria"

Union Futbol y Ajedrez

union(futbol, ajedrez)
##  [1] "Antonio"  "Carmen"   "Ernesto"  "Gabino"   "Jeorgina" "Juan"    
##  [7] "Lalo"     "Lucy"     "Oscar"    "Paco"     "Paty"     "Raul"    
## [13] "Romualdo" "Rosario"  "Rubén"    "Salvador"

##Otras operaciones de unión de Conjuntos

union(basquetbol, voleybol)
##  [1] "Antonio"   "Aracely"   "Carmen"    "Gerardo"   "Lalo"      "Margarita"
##  [7] "Margarito" "Paty"      "Sandra"    "Yuri"      "Gabino"    "Memo"     
## [13] "Romualdo"  "Sandro"
union(atletismo, ajedrez)
## [1] "Antonio"  "Ernesto"  "Juan"     "Luisa"    "Maria"    "Rubén"    "Salvador"
union(atletismo, voleybol)
##  [1] "Antonio"  "Ernesto"  "Juan"     "Luisa"    "Maria"    "Carmen"  
##  [7] "Gabino"   "Memo"     "Paty"     "Romualdo" "Sandro"
####¿Que sucede si unimos todos los conjuntos?
jueganfb  <- union (basquetbol, futbol) 
jueganfbv <- union(jueganfb, voleybol)
jueganfbva <- union(jueganfbv, atletismo)
jueganfbvaj <- union(jueganfbva, ajedrez)

sort(jueganfbvaj)
##  [1] "Antonio"   "Aracely"   "Carmen"    "Ernesto"   "Gabino"    "Gerardo"  
##  [7] "Jeorgina"  "Juan"      "Lalo"      "Lucy"      "Luisa"     "Margarita"
## [13] "Margarito" "Maria"     "Memo"      "Oscar"     "Paco"      "Paty"     
## [19] "Raul"      "Romualdo"  "Rosario"   "Rubén"     "Salvador"  "Sandra"   
## [25] "Sandro"    "Yuri"

Intersección de Conjuntos

Resuelve el dilema de quienes están en un un equipo y que también están en otro.

intersect(futbol, basquetbol) # Los que juegan y que tambien juegan en otro equipo
## [1] "Antonio" "Carmen"  "Lalo"    "Paty"
intersect(futbol, voleybol)
## [1] "Carmen"   "Gabino"   "Paty"     "Romualdo"
intersect(futbol, atletismo)
## [1] "Antonio" "Ernesto" "Juan"
intersect(futbol, ajedrez)
## [1] "Rubén"

Otras intersecciones

intersect(ajedrez, basquetbol)
## character(0)
intersect(voleybol, basquetbol)
## [1] "Carmen" "Paty"
intersect(basquetbol, atletismo)
## [1] "Antonio"
intersect(atletismo, ajedrez) #no hay character 0
## character(0)

Diferencia de conjuntos

Resuelve quienes juegan un deporte y no juegan otro

setdiff(futbol, basquetbol) # Los que juegan y que NO juegan en otro equipo
##  [1] "Ernesto"  "Gabino"   "Jeorgina" "Juan"     "Lucy"     "Oscar"   
##  [7] "Paco"     "Raul"     "Romualdo" "Rosario"  "Rubén"
setdiff(futbol, voleybol)
##  [1] "Antonio"  "Ernesto"  "Jeorgina" "Juan"     "Lalo"     "Lucy"    
##  [7] "Oscar"    "Paco"     "Raul"     "Rosario"  "Rubén"
setdiff(futbol, atletismo)
##  [1] "Carmen"   "Gabino"   "Jeorgina" "Lalo"     "Lucy"     "Oscar"   
##  [7] "Paco"     "Paty"     "Raul"     "Romualdo" "Rosario"  "Rubén"
setdiff(futbol, ajedrez)
##  [1] "Antonio"  "Carmen"   "Ernesto"  "Gabino"   "Jeorgina" "Juan"    
##  [7] "Lalo"     "Lucy"     "Oscar"    "Paco"     "Paty"     "Raul"    
## [13] "Romualdo" "Rosario"

Otras Diferencias

setdiff(ajedrez, basquetbol) # # Los que juegan y que NO juegan en otro equipo
## [1] "Rubén"    "Salvador"
setdiff(voleybol, basquetbol)
## [1] "Gabino"   "Memo"     "Romualdo" "Sandro"
setdiff(basquetbol, atletismo)
## [1] "Aracely"   "Carmen"    "Gerardo"   "Lalo"      "Margarita" "Margarito"
## [7] "Paty"      "Sandra"    "Yuri"
setdiff(atletismo, ajedrez)
## [1] "Antonio" "Ernesto" "Juan"    "Luisa"   "Maria"

Los que no juegan NADA

Reutilizamos la variable jueganfbvaj y la asignamos a la variable sijuegan para hacerlo más entendible y práctico

#Reutilizacion de variable
jueganfbvaj
##  [1] "Antonio"   "Aracely"   "Carmen"    "Gerardo"   "Lalo"      "Margarita"
##  [7] "Margarito" "Paty"      "Sandra"    "Yuri"      "Ernesto"   "Gabino"   
## [13] "Jeorgina"  "Juan"      "Lucy"      "Oscar"     "Paco"      "Raul"     
## [19] "Romualdo"  "Rosario"   "Rubén"     "Memo"      "Sandro"    "Luisa"    
## [25] "Maria"     "Salvador"
sijuegan <- jueganfbvaj

nojuegannada <- sort(setdiff(nombres, sijuegan ))  # sort ya para verlo ordenado
nojuegannada
## [1] "Ana"      "Eduardo"  "Javier"   "Laura"    "Luis"     "Lupita"   "Patricia"
## [8] "Saul"

Cuántos SI JUEGAN algún deporte

length(sijuegan)
## [1] 26

Cuántos NO JUEGAN algun deporte

length(nojuegannada)
## [1] 8

Sacando proporciones y procentajes

Que porcentaje SI JUEGA ALGO

propor.SIJUEGA <- length(sijuegan) / n
propor.SIJUEGA
## [1] 0.7647059
# En porcentaje
propor.SIJUEGA * 100
## [1] 76.47059
# redondeado
round(propor.SIJUEGA * 100)
## [1] 76

QUE porcentaje NO JUEGA algún deporte

propor.NOJUEGA <- length(nojuegannada) / n
propor.NOJUEGA
## [1] 0.2352941
# En porcentaje
propor.NOJUEGA * 100 
## [1] 23.52941
# redondeado
round(propor.NOJUEGA * 100)
## [1] 24

Creando un data frame con los nombres y la disciplina en donde participan. Ordenados

datos <- data.frame(nombres, futbol=nombres %in% futbol, basquetbol=nombres %in% basquetbol, voleybol=nombres %in% voleybol, atletismo=nombres %in% atletismo, ajedrez=nombres %in% ajedrez)

datos
##      nombres futbol basquetbol voleybol atletismo ajedrez
## 1        Ana  FALSE      FALSE    FALSE     FALSE   FALSE
## 2    Antonio   TRUE       TRUE    FALSE      TRUE   FALSE
## 3    Aracely  FALSE       TRUE    FALSE     FALSE   FALSE
## 4     Carmen   TRUE       TRUE     TRUE     FALSE   FALSE
## 5    Eduardo  FALSE      FALSE    FALSE     FALSE   FALSE
## 6    Ernesto   TRUE      FALSE    FALSE      TRUE   FALSE
## 7     Gabino   TRUE      FALSE     TRUE     FALSE   FALSE
## 8    Gerardo  FALSE       TRUE    FALSE     FALSE   FALSE
## 9     Javier  FALSE      FALSE    FALSE     FALSE   FALSE
## 10  Jeorgina   TRUE      FALSE    FALSE     FALSE   FALSE
## 11      Juan   TRUE      FALSE    FALSE      TRUE   FALSE
## 12      Lalo   TRUE       TRUE    FALSE     FALSE   FALSE
## 13     Laura  FALSE      FALSE    FALSE     FALSE   FALSE
## 14      Lucy   TRUE      FALSE    FALSE     FALSE   FALSE
## 15      Luis  FALSE      FALSE    FALSE     FALSE   FALSE
## 16     Luisa  FALSE      FALSE    FALSE      TRUE   FALSE
## 17    Lupita  FALSE      FALSE    FALSE     FALSE   FALSE
## 18 Margarita  FALSE       TRUE    FALSE     FALSE   FALSE
## 19 Margarito  FALSE       TRUE    FALSE     FALSE   FALSE
## 20     Maria  FALSE      FALSE    FALSE      TRUE   FALSE
## 21      Memo  FALSE      FALSE     TRUE     FALSE   FALSE
## 22     Oscar   TRUE      FALSE    FALSE     FALSE   FALSE
## 23      Paco   TRUE      FALSE    FALSE     FALSE   FALSE
## 24  Patricia  FALSE      FALSE    FALSE     FALSE   FALSE
## 25      Paty   TRUE       TRUE     TRUE     FALSE   FALSE
## 26      Raul   TRUE      FALSE    FALSE     FALSE   FALSE
## 27  Romualdo   TRUE      FALSE     TRUE     FALSE   FALSE
## 28   Rosario   TRUE      FALSE    FALSE     FALSE   FALSE
## 29     Rubén   TRUE      FALSE    FALSE     FALSE    TRUE
## 30  Salvador  FALSE      FALSE    FALSE     FALSE    TRUE
## 31    Sandra  FALSE       TRUE    FALSE     FALSE   FALSE
## 32    Sandro  FALSE      FALSE     TRUE     FALSE   FALSE
## 33      Saul  FALSE      FALSE    FALSE     FALSE   FALSE
## 34      Yuri  FALSE       TRUE    FALSE     FALSE   FALSE

Lo que aprendí en esta práctica es que el software para analizar datos (Estudio) nos permite realizar los cálculos probabilísticos de una manera mucha más sencilla, práctica y rápida a que si se estuviera hecho a mano. En este caso fue acerca de las uniones las cuales son el conjunto formado por todos los elementos que pertenecen a ambos conjuntos y las intersecciones que son el conjunto formado por los elementos que tienen en común ambos conjuntos. Me pareció muy interesante la práctica, pero me hubiera gustado que me explicaran detalladamente que es lo que hacen algunos códigos, aunque estén sencillos, por ejemplo, el cogido unión(futbol, voleybol) no tiene mucha confusión nos realiza la unión de futbol con voleybol. Estuvo sencilla la practica en general, los resultados que obtuve fueron distintos al del profesor ya que pienso yo a pesar de que se puso la semilla, no se aplico ya que los equipos no fueron los mismos que los del profe,comparando los resultados con los del profe yo obtuve que el 76% de la poblacion SI JUEGA y 24 % NO JUEGA NADA, en cambio los resultados del profe fueron que el 68% SI JUEGA y el 32% NO JUEGA NADA.