Indexación
La indexación es la selección de subconjuntos de datos de un vector o de datos estructurales, para esto se utilizan los operadores de selección [ ], [[ ]] y $. Es un poco diferente para cada uno objeto, y existen básicamente tres tipos de indexación: por vector lógico, por números enteros y selección negativa.
Vectores: aquí solamente especificamos la posición del o los datos que queremos seleccionar con un solo valor.
> data<--5:5 # creamos vector de -5 a 5 > data [1] -5 -4 -3 -2 -1 0 1 2 3 4 5 > data[2] # selección del valor en la segunda posición [1] -4 > data[c(1,3,5,10)] # selección en la posición 1, 3, 5 y 10 [1] -5 -3 -1 4 > data[-1] # no seleccionar primer valor [1] -4 -3 -2 -1 0 1 2 3 4 5 > data[c(-3:-6)] # no seleccionar del tercero al sexto valor [1] -5 -4 1 2 3 4 5 > data[data<0] # seleccionar los valores menor a 0 [1] -5 -4 -3 -2 -1 > data[data>=0] ## seleccionar los valores mayor igual a 0 [1] 0 1 2 3 4 5
Matrices: para matrices cambia, como son datos dimensionales (x,y) se necesita especificar los dos valores, el primero es la fila y el segundo la columna.
> mtx<-matrix(1:20,5,4) > mtx [,1] [,2] [,3] [,4] [1,] 1 6 11 16 [2,] 2 7 12 17 [3,] 3 8 13 18 [4,] 4 9 14 19 [5,] 5 10 15 20 > mtx[1,2] [1] 6 > mtx[,3] [1] 11 12 13 14 15 > mtx[5,] [1] 5 10 15 20 > mtx[,-2] [,1] [,2] [,3] [1,] 1 11 16 [2,] 2 12 17 [3,] 3 13 18 [4,] 4 14 19 [5,] 5 15 20 > mtx[c(-1,-3,-5),-2] [,1] [,2] [,3] [1,] 2 12 17 [2,] 4 14 19 > mtx[mtx>10] [1] 11 12 13 14 15 16 17 18 19 20 > mtx[mtx>10 | mtx<4] [1] 1 2 3 11 12 13 14 15 16 17 18 19 20
Arrays: en los arrays son multidimensionales, se necesita especificar tres valores el número de filar, el número de columnas y la matriz.
> Arrays<-array(rpois(36,10),dim=c(3,4,3)) > Arrays , , 1 [,1] [,2] [,3] [,4] [1,] 9 7 8 10 [2,] 10 7 10 9 [3,] 11 12 9 16 , , 2 [,1] [,2] [,3] [,4] [1,] 8 13 4 7 [2,] 13 9 9 10 [3,] 12 11 12 11 , , 3 [,1] [,2] [,3] [,4] [1,] 9 13 6 12 [2,] 12 8 10 11 [3,] 9 6 8 10 > Arrays[1,2,3] # la fila 1, de la columna 2 y de la matriz 3 [1] 13 > Arrays[1,2,] # fila 1, de la columna 2 y de todas de las matrices [1] 7 13 13 > Arrays[1,,2] # la fila 1, de la matriz 2 [1] 8 13 4 7 > Arrays[,2,2] # todas las filas, de la columna 2 y de la matriz 2 [1] 13 9 11 > Arrays[1,,] # la fila 1, de todas las columnas y matrices [,1] [,2] [,3] [1,] 9 8 9 [2,] 7 13 13 [3,] 8 4 6 [4,] 10 7 12 > Arrays[,2,] # todas las filas, la columna 2, de todas las matrices [,1] [,2] [,3] [1,] 7 13 13 [2,] 7 9 8 [3,] 12 11 6 > Arrays[,,1] # todas las filas y columnas de la matriz 1 [,1] [,2] [,3] [,4] [1,] 9 7 8 10 [2,] 10 7 10 9 [3,] 11 12 9 16
Data Frames: Los data frames ademas de utlizar los corchetes, se puede utilizar el operador de moneda $,
> edad<-round(rnorm(10,50,10)) > sexo<-rep(c("H","M"),5) > sueldo<-round(rnorm(10,10000,100),2) > data<-data.frame(edad,sexo,sueldo) > data edad sexo sueldo 1 42 H 10260.18 2 47 M 10018.01 3 60 H 9957.56 4 61 M 10025.48 5 48 H 9963.75 6 61 M 9836.52 7 50 H 10142.61 8 39 M 10044.22 9 40 H 10241.48 10 49 M 10150.84 > data[data$sexo=="H",] # seleccionamos los datos de la variable sexo igual a H edad sexo sueldo # crea un sub-dataframes con los datos 1 42 H 10260.18 3 60 H 9957.56 5 48 H 9963.75 7 50 H 10142.61 9 40 H 10241.48 > data$edad[data$sueldo>10000] # selección de dato de edad a partir del sueldo, no es necesario especificar la dimensionalidad. [1] 42 47 61 50 39 40 49 # crea un vector unidimensional de los datos
Listas: como mencionamos las listas son un caso especial, podemos utilizar los tres operadores de selección [ ], [[ ]] y $. La diferencia principal entre [ ] y [[ ]], es que el primero genera un sublista de los datos seleccionados y el segundo obtenemos los datos como vector unidimensional, al igual que utilizar $. Y como sabes cada una se analiza diferente, y si no se toma esto puede causar una forma incorrecta de analizarlos.
Con esto terminamos de ver las Listas. Continua aprendiendo y nos vemos en el próximo post.
> edad<-round(rnorm(10,40,10)) > sexo<-gl(2,3,10,labels = c("M","H")) > SS<-rep(c(F,T),5) > Listas<-list(Edad=edad,Sexo=sexo,SeguroSocial=SS) > Listas $Edad [1] 36 32 40 39 16 37 41 35 35 36 $Sexo [1] M M M H H H M M M H Levels: M H $SeguroSocial [1] FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE > Listas["Edad"] $Edad [1] 36 32 40 39 16 37 41 35 35 36 > Listas[["Edad"]] [1] 36 32 40 39 16 37 41 35 35 36 > Listas$Edad [1] 36 32 40 39 16 37 41 35 35 36
Con esto terminamos de ver las Listas. Continua aprendiendo y nos vemos en el próximo post.
No hay comentarios.:
Publicar un comentario