Descripción. Desarrollar la práctica realizada en clase presencial del viernes 15 de junio del 2018 del uso de vectores y data.frames en R
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()
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, 15.1, 13.6)
sueldos
## [1] 12.5 13.4 56.7 14.8 7.1 15.1 13.6
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 ## genera ayuda
starting httpd help server … done
help (‘mean’) #genera ayuda
mean.edades <- mean (edades)
mean.edades
## [1] 27
Sacar cuantos nombres hay en el vector
length(nombres)
## [1] 7
Sacar cuantos F y cuantos M son
genero == ‘M’
Conocer las posiciones de M, los indices de un arreglo
which arroja elementos de un arreglo que cumplan con una condicion
which (genero == “M”)
[1] 1 2 3 6
nombres ### [1] “hugo” “paco” “luis” “paty” “maria” “Ruben” “Gaby” ### cuales nombres son de genero F
nombres [4:5] ##porque ya sabemos que es del 1 al 3
[1] “paty” “maria”
nombres [which(genero == “F”)]
[1] “paty” “maria” “Gaby”
saber que personas tienen entre 25 y 30 años
which(edades>=25 & edades<=30)
[1] 1 2 6
nombres [which(edades>=25 & edades<=30)]
[1] “hugo” “paco” “Ruben”
c es un valor que inicializa un vector
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”
Quiero que me digas a que nombres de personas les gustan los videojuegos y que edad tienen estos
nombres [which (pasatiempos == ‘videojuegos’)] #nombres de quienes juegan videojuegos
[1] “paty” “Gaby”
edades [which (pasatiempos == ‘videojuegos’)] #edades de quienes juegan videojuegos
[1] 24 19
mean (edades [which (pasatiempos == ‘videojuegos’)]) #edad promedio de los que juegan videojuegos
[1] 21.5
genero [which (pasatiempos == ‘videojuegos’)]
[1] “F” “F”
generar una tabla apartir de todos los vectores que tenemos
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 15.1 13.6
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.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 15.1 M musica
7 Gaby 19 13.6 F videojuegos
agregando 5 registros completos a mis datos
help (rbind)
nuevo <- c (‘Ene’, ‘25’, ‘345.6’, ‘F’, ‘videojuegos’)
misdatos <- rbind (misdatos, nuevo) ## agrega nuevo registro a misdatos
misdatos <- rbind (misdatos, c(‘Jorge’, ‘41’, ‘100’, ‘M’, ‘musica’)) misdatos <- rbind (misdatos, c(‘Ray’, ‘33’, ‘254.5’, ‘M’, ‘musica’)) misdatos <- rbind (misdatos, c(‘Cony’, ‘34’, ‘300.21’, ‘F’, ‘videojuegos’)) misdatos <- rbind (misdatos, c(‘Eduardo’, ‘41’, ‘50.50’, ‘M’, ‘estudio’)) 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 15.1 M musica
7 Gaby 19 13.6 F videojuegos
8 Ene 25 345.6 F videojuegos
9 Jorge 41 100 M musica
10 Ray 33 254.5 M musica
11 Cony 34 300.21 F videojuegos
12 Eduardo 41 50.50 M estudio
saber que tipo de datos es misdatos
class(misdatos) ### [1] “data.frame”
class(edades)
[1] “numeric”
class(nombres)
[1] “character”
visualizar mis datos por medio de VIEW
View(misdatos)
conocer cuantos renglones y columnas hay en un data.frame
length(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 data.frame
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 15.1 M musica
mostrar los ultimos 6 renglones
tail(misdatos)
nombres edades sueldos genero pasatiempos
7 Gaby 19 13.6 F videojuegos
8 Ene 25 345.6 F videojuegos
9 Jorge 41 100 M musica
10 Ray 33 254.5 M musica
11 Cony 34 300.21 F videojuegos
12 Eduardo 41 50.50 M estudio
mostrar del 1 al 5
misdatos [1:5,]###la coma significa que si no hay nada despues es 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 renglones y columnas especificas
genero pasatiempos
1 M musica
2 M musica
3 M estudio
4 F videojuegos
5 F musica
misdatos [6,] ###muestra un renglon especifico
nombres edades sueldos genero pasatiempos
6 Ruben 27 15.1 M musica
otra manera de acceder a los registros de un data.frame
misdatos\(nombres ## el "\)“” identifica el nombre del atributo en el data.frame
[1] “hugo” “paco” “luis” “paty” “maria” “Ruben” “Gaby”
[8] “Ene” “Jorge” “Ray” “Cony” “Eduardo”
mostrar mas de una columna
vista.misdatos <- c(misdatos\(nombres, misdatos\)edades) vista.misdatos
[1] “hugo” “paco” “luis” “paty” “maria” “Ruben” “Gaby”
[8] “Ene” “Jorge” “Ray” “Cony” “Eduardo” “28” “26”
[15] “32” “24” “33” “27” “19” “25” “41”
[22] “33” “34” “41”
analisis de datos usando el data.frame
[1] 98.6675
cuales son los datos de la persona que mas gana dinero
max(as.double(misdatos$sueldos))
[1] 345.6
which.max(as.double(misdatos$sueldos))
[1] 8
misdatos [which.max(as.double(misdatos$sueldos)),]
nombres edades sueldos genero pasatiempos
8 Ene 25 345.6 F videojuegos
cuales son los datos de la persona que menos gana dinero
misdatos [which.min(as.double(misdatos$sueldos)),]
nombres edades sueldos genero pasatiempos
5 maria 33 7.1 F musica