#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