Operaciones
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"
edades<-c(28,26,32,24,33,32,44)
edades
## [1] 28 26 32 24 33 32 44
sueldos<-c(12.4,13.5,23.4,56.7,14.8,13.2,22.1)
sueldos
## [1] 12.4 13.5 23.4 56.7 14.8 13.2 22.1
genero<-c('M','M','M','F','F','M','F')
genero
## [1] "M" "M" "M" "F" "F" "M" "F"
#Despliega las variables de la sesion
ls()
## [1] "edades" "genero" "nombres" "sueldos" "x" "y"
?mean # generar ayuda
## starting httpd help server ... done
help ('mean')
#Sacar la media de las edades
mean.edades<- mean(edades)
mean.edades
## [1] 31.28571
#Conocer los indices del arreglo
which(genero =='M')
## [1] 1 2 3 6
#¿Cuáles nombres son de genero masculino?
nombres[which(genero=='M')]
## [1] "Hugo" "Paco" "Luis" "Ruben"
# Personas con edades de entre 25 a 30 años
which (edades >= 25 & edades <=30)
## [1] 1 2
nombres [which (edades >= 25 & edades <=30)]
## [1] "Hugo" "Paco"
#Muestra las edades y los pasatiempos
pasatiempos<-c('musica','musica','estudio','videojuego', 'musica','musica','videojuego')
pasatiempos
## [1] "musica" "musica" "estudio" "videojuego" "musica"
## [6] "musica" "videojuego"
edades
## [1] 28 26 32 24 33 32 44
pasatiempos
## [1] "musica" "musica" "estudio" "videojuego" "musica"
## [6] "musica" "videojuego"
#¿A qué personas les gustan los videojuegos y que promedio de edad tienen?
nombres [which(pasatiempos == 'videojuego')]
## [1] "Paty" "Gaby"
edades [which (pasatiempos =='videojuego')]
## [1] 24 44
mean(edades[which(pasatiempos =='videojuego')])
## [1] 34
genero[which (pasatiempos == 'videojuego')]
## [1] "F" "F"
## Generar una tabla a partir de todos los vectores que tenemos
nombres
## [1] "Hugo" "Paco" "Luis" "Paty" "Maria" "Ruben" "Gaby"
edades
## [1] 28 26 32 24 33 32 44
genero
## [1] "M" "M" "M" "F" "F" "M" "F"
sueldos
## [1] 12.4 13.5 23.4 56.7 14.8 13.2 22.1
pasatiempos
## [1] "musica" "musica" "estudio" "videojuego" "musica"
## [6] "musica" "videojuego"
misdatos<-data.frame(nombres,edades,genero,sueldos,pasatiempos, stringsAsFactors = FALSE)
misdatos
## nombres edades genero sueldos pasatiempos
## 1 Hugo 28 M 12.4 musica
## 2 Paco 26 M 13.5 musica
## 3 Luis 32 M 23.4 estudio
## 4 Paty 24 F 56.7 videojuego
## 5 Maria 33 F 14.8 musica
## 6 Ruben 32 M 13.2 musica
## 7 Gaby 44 F 22.1 videojuego
#Agregar registros completos a "misdatos"
misdatos<-rbind(misdatos,c('Sofia',32,'F',6736,'videojuego'))
misdatos<-rbind(misdatos,c('Miguel',54,'M',333,'videojuego'))
misdatos<-rbind(misdatos,c('Sandra',45,'F',36,'estudio'))
misdatos<-rbind(misdatos,c('Enrique',32,'M',765,'musica'))
misdatos<-rbind(misdatos,c('Cesar',18,'M',43,'videojuego'))
misdatos<-rbind(misdatos,c('Gustavo',78,'M',8888,'estudio'))
misdatos<-rbind(misdatos,c('Daniel',15,'M',12.4,'musica'))
misdatos<-rbind(misdatos,c('Angel',76,'M',34.56,'estudio'))
misdatos<-rbind(misdatos,c('Dana',45,'F',323,'musica'))
misdatos
## nombres edades genero sueldos pasatiempos
## 1 Hugo 28 M 12.4 musica
## 2 Paco 26 M 13.5 musica
## 3 Luis 32 M 23.4 estudio
## 4 Paty 24 F 56.7 videojuego
## 5 Maria 33 F 14.8 musica
## 6 Ruben 32 M 13.2 musica
## 7 Gaby 44 F 22.1 videojuego
## 8 Sofia 32 F 6736 videojuego
## 9 Miguel 54 M 333 videojuego
## 10 Sandra 45 F 36 estudio
## 11 Enrique 32 M 765 musica
## 12 Cesar 18 M 43 videojuego
## 13 Gustavo 78 M 8888 estudio
## 14 Daniel 15 M 12.4 musica
## 15 Angel 76 M 34.56 estudio
## 16 Dana 45 F 323 musica
##¿Qué tipo de datos es "misdatos"?
class(misdatos)
## [1] "data.frame"
##Visualizar los datos por medio de VIEW
View(misdatos)
##Conocer cuantos renglones y colunmas hay en un data.frame
length(misdatos)
## [1] 5
str(misdatos)
## 'data.frame': 16 obs. of 5 variables:
## $ nombres : chr "Hugo" "Paco" "Luis" "Paty" ...
## $ edades : chr "28" "26" "32" "24" ...
## $ genero : chr "M" "M" "M" "F" ...
## $ sueldos : chr "12.4" "13.5" "23.4" "56.7" ...
## $ pasatiempos: chr "musica" "musica" "estudio" "videojuego" ...
##Acceder a los renglones y columnas de un data.frame
##Mostrar los primeros 6 renglones
head(misdatos)
## nombres edades genero sueldos pasatiempos
## 1 Hugo 28 M 12.4 musica
## 2 Paco 26 M 13.5 musica
## 3 Luis 32 M 23.4 estudio
## 4 Paty 24 F 56.7 videojuego
## 5 Maria 33 F 14.8 musica
## 6 Ruben 32 M 13.2 musica
##Mostrar los ultimos 6
tail(misdatos)
## nombres edades genero sueldos pasatiempos
## 11 Enrique 32 M 765 musica
## 12 Cesar 18 M 43 videojuego
## 13 Gustavo 78 M 8888 estudio
## 14 Daniel 15 M 12.4 musica
## 15 Angel 76 M 34.56 estudio
## 16 Dana 45 F 323 musica
##Mostrar del 1 al 5
misdatos[1:5,]##Si no hay nada despues de la coma son todaslas columnas
## nombres edades genero sueldos pasatiempos
## 1 Hugo 28 M 12.4 musica
## 2 Paco 26 M 13.5 musica
## 3 Luis 32 M 23.4 estudio
## 4 Paty 24 F 56.7 videojuego
## 5 Maria 33 F 14.8 musica
##
misdatos[1:5,4:5] ### [renglón, columna]
## sueldos pasatiempos
## 1 12.4 musica
## 2 13.5 musica
## 3 23.4 estudio
## 4 56.7 videojuego
## 5 14.8 musica
misdatos[6,]### Mustra un renglón especifico
## nombres edades genero sueldos pasatiempos
## 6 Ruben 32 M 13.2 musica
##Otra manera de acceder a los datos en un data frame
misdatos$nombres ## $ identifica el nombre del atributo
## [1] "Hugo" "Paco" "Luis" "Paty" "Maria" "Ruben" "Gaby"
## [8] "Sofia" "Miguel" "Sandra" "Enrique" "Cesar" "Gustavo" "Daniel"
## [15] "Angel" "Dana"
##Analisis de datos usando data frame
### ¿Cuál es la media de sueldos en "misdatos"
mean.sueldos<-mean(as.double(misdatos$sueldos))
mean.sueldos
## [1] 1082.941
###¿Cuales son los datos de la persona que más gana dinero?
max(as.double(misdatos$sueldos))
## [1] 8888
which.max(as.double(misdatos$sueldos))
## [1] 13
misdatos[which.max(as.double(misdatos$sueldos)),]
## nombres edades genero sueldos pasatiempos
## 13 Gustavo 78 M 8888 estudio
###¿Cuales son los datos de la persona que menos gana ?
min(as.double(misdatos$sueldos))
## [1] 12.4
which.min(as.double(misdatos$sueldos))
## [1] 1
misdatos[which.min(as.double(misdatos$sueldos)),]
## nombres edades genero sueldos pasatiempos
## 1 Hugo 28 M 12.4 musica