Practica 7 Vectores y dataframe en R

Objetivo: Ejecutar operaciones en R simulando estructuras de datos, vectores y data.frames en R

Descripcion: Desarrollar la práctica realizada en clase del uso de vectores y dataframes, conocer diferentes sintaxis de instrucciones para desplegar los datos contenidos en los renglones y columnas de la dataframe

## 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','Gaby')
nombres
## [1] "Hugo"  "Paco"  "Luis"  "Paty"  "Maria" "Ruben" "Gaby"
## despliega las variables de la sesion
ls()
## [1] "nombres" "x"       "y"
edades<- c(28,26,32,24,33,27,19)
edades
## [1] 28 26 32 24 33 27 19
sueldos<-c(12.5,13.4,56.7,14.8,7.1,50.2,44.4)
sueldos
## [1] 12.5 13.4 56.7 14.8  7.1 50.2 44.4
genero<- c('M','M','M','F','F','M','F')
genero
## [1] "M" "M" "M" "F" "F" "M" "F"
##generar ayuda
?mean
## starting httpd help server ... done
help ("mean")

##sacar el prom de las edades (media de edades)
mean.edades<-mean (edades)
mean.edades
## [1] 27
##sacar cuantos nombres hay en el vector
length (nombres)
## [1] 7
##sacar cuantos masculinos y femeninos son
genero == 'M'
## [1]  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE
## conocer las posiciones de M (Los indices del arreglo)
which(genero=='M')
## [1] 1 2 3 6
##nombres que tienen genero femenino
nombres [4:5] ##porque ya sabemos que estan ahi
## [1] "Paty"  "Maria"
nombres[which(genero=='F')] ##si no sabemos donde estan
## [1] "Paty"  "Maria" "Gaby"
##saber que personas tienen entre 25 y 30 anios
which(edades>=25 & edades<=30)
## [1] 1 2 6
nombres [which(edades>=25 & edades<=30)]
## [1] "Hugo"  "Paco"  "Ruben"
pasatiempos<- c('musica','musica','estudio','videojuegos','musica','musica','videojuegos')
edades
## [1] 28 26 32 24 33 27 19
pasatiempos
## [1] "musica"      "musica"      "estudio"     "videojuegos" "musica"     
## [6] "musica"      "videojuegos"
## a que personas le gustan los videojuegos y que promedio de edad tienen
nombres[which(pasatiempos=='videojuegos')]
## [1] "Paty" "Gaby"
edades[which(pasatiempos== 'videojuegos')]
## [1] 24 19
mean(edades[which(pasatiempos== 'videojuegos')])
## [1] 21.5
genero[which(pasatiempos=='videojuegos')]
## [1] "F" "F"
nombres
## [1] "Hugo"  "Paco"  "Luis"  "Paty"  "Maria" "Ruben" "Gaby"
edades
## [1] 28 26 32 24 33 27 19
sueldos
## [1] 12.5 13.4 56.7 14.8  7.1 50.2 44.4
genero
## [1] "M" "M" "M" "F" "F" "M" "F"
pasatiempos
## [1] "musica"      "musica"      "estudio"     "videojuegos" "musica"     
## [6] "musica"      "videojuegos"
##pasar a una tabla
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.4      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     27    50.2      M      musica
## 7    Gaby     19    44.4      F videojuegos
##agregando 5 registros completos a mis datos
misdatos<-rbind (misdatos,c ('Ene',25,345.6,'F','videojuegos'))
misdatos<-rbind (misdatos,c ('Marta',28,35.6,'F','musica'))
misdatos<-rbind (misdatos,c ('Abel',37,588,'M','estudio'))
misdatos<-rbind (misdatos,c ('Lupe',45,898.5,'F','musica'))
misdatos<-rbind (misdatos,c ('Juan',22,8.7,'M','videojuegos'))
misdatos
##    nombres edades sueldos genero pasatiempos
## 1     Hugo     28    12.5      M      musica
## 2     Paco     26    13.4      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     27    50.2      M      musica
## 7     Gaby     19    44.4      F videojuegos
## 8      Ene     25   345.6      F videojuegos
## 9    Marta     28    35.6      F      musica
## 10    Abel     37     588      M     estudio
## 11    Lupe     45   898.5      F      musica
## 12    Juan     22     8.7      M videojuegos
## 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 hya en  un data frame
length(misdatos)
## [1] 5
str(misdatos)
## 'data.frame':    12 obs. of  5 variables:
##  $ nombres    : chr  "Hugo" "Paco" "Luis" "Paty" ...
##  $ edades     : chr  "28" "26" "32" "24" ...
##  $ sueldos    : chr  "12.5" "13.4" "56.7" "14.8" ...
##  $ genero     : chr  "M" "M" "M" "F" ...
##  $ pasatiempos: chr  "musica" "musica" "estudio" "videojuegos" ...
##acceder a los renglones y columnas de un dataframe
##mostrar los primeros 6 renglones

head(misdatos)
##   nombres edades sueldos genero pasatiempos
## 1    Hugo     28    12.5      M      musica
## 2    Paco     26    13.4      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     27    50.2      M      musica
##mostrar los ultimos 6
tail(misdatos)
##    nombres edades sueldos genero pasatiempos
## 7     Gaby     19    44.4      F videojuegos
## 8      Ene     25   345.6      F videojuegos
## 9    Marta     28    35.6      F      musica
## 10    Abel     37     588      M     estudio
## 11    Lupe     45   898.5      F      musica
## 12    Juan     22     8.7      M videojuegos
##mostrar del 1 al 5
misdatos[1:5,] ##si no hay nada despues de la , significa todas las columnas
##   nombres edades sueldos genero pasatiempos
## 1    Hugo     28    12.5      M      musica
## 2    Paco     26    13.4      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] #muestra renglon columna
##   genero pasatiempos
## 1      M      musica
## 2      M      musica
## 3      M     estudio
## 4      F videojuegos
## 5      F      musica
misdatos[6,] ##muestra todo el registro 6
##   nombres edades sueldos genero pasatiempos
## 6   Ruben     27    50.2      M      musica
##otra manera de acceder a los datos en data frame
misdatos$nombres ## el signo de pesos identifica el atributo del data frame
##  [1] "Hugo"  "Paco"  "Luis"  "Paty"  "Maria" "Ruben" "Gaby"  "Ene"  
##  [9] "Marta" "Abel"  "Lupe"  "Juan"
## mostrar mas de una columna
vista.misdatos.nombres<- misdatos$nombres
vista.misdatos.nombres
##  [1] "Hugo"  "Paco"  "Luis"  "Paty"  "Maria" "Ruben" "Gaby"  "Ene"  
##  [9] "Marta" "Abel"  "Lupe"  "Juan"
##analisis de datos usando el data frame
##saber la media de los sueldos de mis datos
mean.sueldos<-mean(as.double(misdatos$sueldos))
mean.sueldos                   
## [1] 172.9583
##cuales son los datos de la persona que más gana dinero
max(as.double(misdatos$sueldos))
## [1] 898.5
which.max(as.double(misdatos$sueldos))
## [1] 11
misdatos[which.max(as.double(misdatos$sueldos)),]
##    nombres edades sueldos genero pasatiempos
## 11    Lupe     45   898.5      F      musica