#Vectores

x<-1:10
x
##  [1]  1  2  3  4  5  6  7  8  9 10
y<- c (9,5,7,6,4,0,3,2,8,7)
y
##  [1] 9 5 7 6 4 0 3 2 8 7
nombres <- c ("Hugo", "Paco", "Luis", "Paty", "Maria", "Ruben", "Gabriela")
nombres
## [1] "Hugo"     "Paco"     "Luis"     "Paty"     "Maria"    "Ruben"   
## [7] "Gabriela"
#Despliega las variables de la sesion
ls()
## [1] "nombres" "x"       "y"
edades<- c (28,26,32,24,33,12,34)
edades
## [1] 28 26 32 24 33 12 34
sueldos <- c (12.5,13.2,56.7,14.8,7.1, 4.7, 30.3)
sueldos
## [1] 12.5 13.2 56.7 14.8  7.1  4.7 30.3
genero <- c("M","M","M", "F", "F", "M", "F")
genero
## [1] "M" "M" "M" "F" "F" "M" "F"
##Sacar el promedio de las edades
? mean
## starting httpd help server ... done
help("mean")

mean(edades)
## [1] 27
mean.edades <- mean(edades)
mean.edades
## [1] 27
# sacar cuantos nombres hay en el vector

length(nombres)
## [1] 7
#Sacar cuantos m y cuantos f son

genero== 'M'
## [1]  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE
# cONOCER LAS POSICIONES DE M, LOS INDICES DEL ARREGLO (WHICH)

? which

which(genero == "M")
## [1] 1 2 3 6
nombres
## [1] "Hugo"     "Paco"     "Luis"     "Paty"     "Maria"    "Ruben"   
## [7] "Gabriela"
#Cuales nombres sonde genero F

nombres [1:3] #por que ya sabemos cuales son
## [1] "Hugo" "Paco" "Luis"
nombres [4:5]
## [1] "Paty"  "Maria"
nombres [which(genero == "F")] #cuando se desconoce la posicion
## [1] "Paty"     "Maria"    "Gabriela"
# ver que personas tienen entre 25 y 30 años
which(edades>= 25  & edades<=30)
## [1] 1 2
# ver que personas sus nombres
nombres [which(edades>= 25  & edades<=30)]
## [1] "Hugo" "Paco"
#pasatiempos

pasatiempos <- c ("musica", "musica", "estudio", "videojuegos", "musica","musica", "videojuegos")
pasatiempos
## [1] "musica"      "musica"      "estudio"     "videojuegos" "musica"     
## [6] "musica"      "videojuegos"
# quiero que me digas a que nombres de personas les gustan los videojuegos y que promedio de edad tienen

nombres [which(pasatiempos =="videojuegos")]
## [1] "Paty"     "Gabriela"
edades [which(pasatiempos =="videojuegos")]
## [1] 24 34
mean (edades [which(pasatiempos =="videojuegos")])
## [1] 29
genero[which(pasatiempos=="videojuegos")]
## [1] "F" "F"
## Generar una tabla a partir de todos los vectores que tenemos
nombres
## [1] "Hugo"     "Paco"     "Luis"     "Paty"     "Maria"    "Ruben"   
## [7] "Gabriela"
edades
## [1] 28 26 32 24 33 12 34
sueldos
## [1] 12.5 13.2 56.7 14.8  7.1  4.7 30.3
genero
## [1] "M" "M" "M" "F" "F" "M" "F"
pasatiempos
## [1] "musica"      "musica"      "estudio"     "videojuegos" "musica"     
## [6] "musica"      "videojuegos"
misdatos<-data.frame(nombres,edades,sueldos,genero,pasatiempos, stringsAsFactors = FALSE)
misdatos
##    nombres edades sueldos genero pasatiempos
## 1     Hugo     28    12.5      M      musica
## 2     Paco     26    13.2      M      musica
## 3     Luis     32    56.7      M     estudio
## 4     Paty     24    14.8      F videojuegos
## 5    Maria     33     7.1      F      musica
## 6    Ruben     12     4.7      M      musica
## 7 Gabriela     34    30.3      F videojuegos
##agregando 5 registros completos a mis datos
nuevo <- c ("Cony",32,555,"F", "videojuegos")
misdatos<- rbind(misdatos,c("Cony",32,555,"F","videojuegos"))

misdatos
##    nombres edades sueldos genero pasatiempos
## 1     Hugo     28    12.5      M      musica
## 2     Paco     26    13.2      M      musica
## 3     Luis     32    56.7      M     estudio
## 4     Paty     24    14.8      F videojuegos
## 5    Maria     33     7.1      F      musica
## 6    Ruben     12     4.7      M      musica
## 7 Gabriela     34    30.3      F videojuegos
## 8     Cony     32     555      F videojuegos
misdatos<- rbind(misdatos,nuevo) # agrega un nuevo registroamis datos

misdatos<- rbind(misdatos, c ("Cony",32,555,"F", "videojuegos"))
misdatos
##     nombres edades sueldos genero pasatiempos
## 1      Hugo     28    12.5      M      musica
## 2      Paco     26    13.2      M      musica
## 3      Luis     32    56.7      M     estudio
## 4      Paty     24    14.8      F videojuegos
## 5     Maria     33     7.1      F      musica
## 6     Ruben     12     4.7      M      musica
## 7  Gabriela     34    30.3      F videojuegos
## 8      Cony     32     555      F videojuegos
## 9      Cony     32     555      F videojuegos
## 10     Cony     32     555      F videojuegos
misdatos<- rbind(misdatos, c ("Ana",32,555,"F", "videojuegos"))
misdatos
##     nombres edades sueldos genero pasatiempos
## 1      Hugo     28    12.5      M      musica
## 2      Paco     26    13.2      M      musica
## 3      Luis     32    56.7      M     estudio
## 4      Paty     24    14.8      F videojuegos
## 5     Maria     33     7.1      F      musica
## 6     Ruben     12     4.7      M      musica
## 7  Gabriela     34    30.3      F videojuegos
## 8      Cony     32     555      F videojuegos
## 9      Cony     32     555      F videojuegos
## 10     Cony     32     555      F videojuegos
## 11      Ana     32     555      F videojuegos
?rbind

#rbind (misdatos, nuevo)
#rbind (misdatos, c (nuevo))

#Saber que tipo de datos es misdatos

class(misdatos)
## [1] "data.frame"
class(edades)
## [1] "numeric"
class(nombres)
## [1] "character"
#visualizar los datos por medio de view

View(misdatos)

#Conocer cuantos renglones y columnas hay en una data frame

length(misdatos)  #nos dice cuantas columnas son
## [1] 5
str(misdatos)
## 'data.frame':    11 obs. of  5 variables:
##  $ nombres    : chr  "Hugo" "Paco" "Luis" "Paty" ...
##  $ edades     : chr  "28" "26" "32" "24" ...
##  $ sueldos    : chr  "12.5" "13.2" "56.7" "14.8" ...
##  $ genero     : chr  "M" "M" "M" "F" ...
##  $ pasatiempos: chr  "musica" "musica" "estudio" "videojuegos" ...
#Acceder a los renglones y columnad de un data frame

#mostrar los primeros 6 renglones (head)
head(misdatos)
##   nombres edades sueldos genero pasatiempos
## 1    Hugo     28    12.5      M      musica
## 2    Paco     26    13.2      M      musica
## 3    Luis     32    56.7      M     estudio
## 4    Paty     24    14.8      F videojuegos
## 5   Maria     33     7.1      F      musica
## 6   Ruben     12     4.7      M      musica
#muestra los ultimos 6 renglones
tail(misdatos)
##     nombres edades sueldos genero pasatiempos
## 6     Ruben     12     4.7      M      musica
## 7  Gabriela     34    30.3      F videojuegos
## 8      Cony     32     555      F videojuegos
## 9      Cony     32     555      F videojuegos
## 10     Cony     32     555      F videojuegos
## 11      Ana     32     555      F videojuegos
#del 1 al 5 es con 
misdatos [1:5, ] #la coma significa que si no hay nada despues toma todaslas columnas
##   nombres edades sueldos genero pasatiempos
## 1    Hugo     28    12.5      M      musica
## 2    Paco     26    13.2      M      musica
## 3    Luis     32    56.7      M     estudio
## 4    Paty     24    14.8      F videojuegos
## 5   Maria     33     7.1      F      musica
misdatos [1:5,4:5]
##   genero pasatiempos
## 1      M      musica
## 2      M      musica
## 3      M     estudio
## 4      F videojuegos
## 5      F      musica
misdatos [6,] # para ver el registro de esa posicion
##   nombres edades sueldos genero pasatiempos
## 6   Ruben     12     4.7      M      musica
##Otra manera de acceder a los datos de un dataframe
#eñ signo de $ identifica el nombre del atributo del data frame
misdatos$nombres
##  [1] "Hugo"     "Paco"     "Luis"     "Paty"     "Maria"    "Ruben"   
##  [7] "Gabriela" "Cony"     "Cony"     "Cony"     "Ana"
#mostrar mas de una columna sin ordenar
vista.misdatos<- c (misdatos$nombres, misdatos$edades)
vista.misdatos
##  [1] "Hugo"     "Paco"     "Luis"     "Paty"     "Maria"    "Ruben"   
##  [7] "Gabriela" "Cony"     "Cony"     "Cony"     "Ana"      "28"      
## [13] "26"       "32"       "24"       "33"       "12"       "34"      
## [19] "32"       "32"       "32"       "32"
vista.misdatos.nombres <- misdatos$nombres
vista.misdatos
##  [1] "Hugo"     "Paco"     "Luis"     "Paty"     "Maria"    "Ruben"   
##  [7] "Gabriela" "Cony"     "Cony"     "Cony"     "Ana"      "28"      
## [13] "26"       "32"       "24"       "33"       "12"       "34"      
## [19] "32"       "32"       "32"       "32"
#analisis de datos usando el data frame

mean.sueldos<- mean (as.double(misdatos$sueldo))
mean.sueldos
## [1] 214.4818
#cuales son personas del genero femenino
misdatos [1:5, "F"]
## NULL
#cuales son los datos de la persona que gana mas dinero (max)

max.sueldos<- max (as.double(misdatos$sueldo))
max.sueldos 
## [1] 555
max(as.double(misdatos$sueldos))
## [1] 555
which.max (as.double(misdatos$sueldo))
## [1] 8
misdatos [which.max(as.double(misdatos$sueldo)),]
##   nombres edades sueldos genero pasatiempos
## 8    Cony     32     555      F videojuegos
misdatos [which.min(as.double(misdatos$sueldo)),]
##   nombres edades sueldos genero pasatiempos
## 6   Ruben     12     4.7      M      musica