UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e...
Transcript of UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e...
![Page 1: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/1.jpg)
UNIDAD 4: MATRICES, MARCOS DE DATOS Y LECTURA
DE DATOS EN R
Técnicas Inteligentes en BioinformáticaMáster en Lógica, Computación e Inteligencia Artificial Dpto. Ciencias de la Computación e Inteligencia Artificial
Francisco J. Romero Campero
Universidad de Sevilla
![Page 2: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/2.jpg)
TIPOS DE DATOSo Simples:
Numéricos Lógicos Caracteres Cadenas
o Compuestos Vectores Listas Matrices Marcos de datos
![Page 3: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/3.jpg)
MATRICES: constructores Colección de datos del mismo tipo que tiene
dos dimensiones. Para crear una matriz usamos la función
matrix Los elementos se proporcionan en un vector y
se colocan por columnas.
> matrix(1:10, nrow = 2, ncol = 5)
[,1] [,2] [,3] [,4] [,5]
[1,] 1 3 5 7 9
[2,] 2 4 6 8 10
![Page 4: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/4.jpg)
MATRICES: constructores Los datos se reciclan hasta completar la
matriz.
> matrix(1:3, nrow = 2, ncol = 3)
[,1] [,2] [,3]
[1,] 1 3 2
[2,] 2 1 3
![Page 5: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/5.jpg)
MATRICES: constructores Mediante el argumento byrow podemos hacer
que los elementos se coloquen por filas.
> matrix(1:10, nrow = 2, ncol = 5, byrow = TRUE)
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 6 7 8 9 10
![Page 6: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/6.jpg)
MATRICES: accesores y modificadores La función dim devuelve las dimensiones de
la matriz. La función nrow devuelve el número de filas. La función ncol devuelve el número de
columnas.> M <- matrix(1:15, nrow = 3, ncol = 5)
> dim(M)
[1] 3 5
> nrow(M)
[1] 3
> ncol(M)
[1] 5
![Page 7: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/7.jpg)
MATRICES: accesores y modificadores Podemos acceder a los elementos de una
matriz mediante sus índices.> dim(M)
[1] 3 5
> M[1, 2]
[1] 4
> M[2, 5]
[1] 14
> M[5, 3]
Error: subíndice fuera de los límites
![Page 8: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/8.jpg)
MATRICES: accesores y modificadores Las filas y las columnas pueden tener
nombres
> rownames(M) <- c("uno", "dos", "tres")
> colnames(M) <- c("uno", "dos", "tres", "cuatro", "cinco")
> M
uno dos tres cuatro cinco
uno 1 4 7 10 13
dos 2 5 8 11 14
tres 3 6 9 12 15
![Page 9: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/9.jpg)
MATRICES: accesores y modificadores Podemos seleccionar un elemento por el nombre
de su fila y su columna> M["dos", "tres"]
[1] 8
Selección de filas> M[1,]
uno dos tres cuatro cinco
1 4 7 10 13
Selección de columnas> M[,3]
uno dos tres
7 8 9
![Page 10: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/10.jpg)
MATRICES: accesores y modificadores Selección por matriz de índices.> IJ1 <- matrix(c(1, 1, 1, 4, 2, 3), ncol = 2, byrow = TRUE)
> M[IJ1] # Los elementos (1,1)-ésimo, (1,4)-ésimo y (2,3)-ésimo de M
[1] 1 10 8
![Page 11: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/11.jpg)
MATRICES: accesores y modificadores Modificación de los elementos de una matriz> M[c(1, 2), c(1, 3, 4)] <- 0
> M
uno dos tres cuatro cinco
uno 0 4 0 0 13
dos 0 5 0 0 14
tres 3 6 9 12 15
![Page 12: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/12.jpg)
MATRICES: accesores y modificadores Modificación de los elementos de una matriz> M[c(1, 2), c(1, 3, 4)] <- c(-1, -2, -3)
> M
uno dos tres cuatro cinco
uno -1 4 -3 -2 13
dos -2 5 -1 -3 14
tres 3 6 9 12 15
![Page 13: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/13.jpg)
Todos los elementos deben ser del mismo tipo, en caso contrario, R realiza un ajuste.
> M[1, 1] <- "-1"
> M
uno dos tres cuatro cinco
uno "-1" "4" "-3" "-2" "13"
dos "-2" "5" "-1" "-3" "14"
tres "3" "6" "9" "12" "15"
![Page 14: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/14.jpg)
MATRICES: funciones relevantes Las operaciones aritmético-lógicas se realizan
elemento a elemento.
> v1 <- seq(1, 11, by = 2)
> v2 <- seq(0, 10, by = 2)
> M1 <- matrix(v1, nrow = 2)
> M2 <- matrix(v2, nrow = 2)
> M3 <- matrix(v1, nrow = 3)
![Page 15: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/15.jpg)
MATRICES: funciones relevantes> M1
[,1] [,2] [,3]
[1,] 1 5 9
[2,] 3 7 11
> M2
[,1] [,2] [,3]
[1,] 0 4 8
[2,] 2 6 10
> M3
[,1] [,2]
[1,] 1 7
[2,] 3 9
[3,] 5 11
![Page 16: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/16.jpg)
MATRICES: funciones relevantes> M1 + M2 # Suma elemento a elemento.
[,1] [,2] [,3]
[1,] 1 9 17
[2,] 5 13 21
> M1 * M2 # Multiplicación elemento a elemento
[,1] [,2] [,3]
[1,] 0 20 72
[2,] 6 42 110
![Page 17: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/17.jpg)
MATRICES: funciones relevantes Multiplicación de matrices (filas x columnas)> M1 %*% M3
[,1] [,2]
[1,] 61 151
[2,] 79 205
Al aplicar operaciones aritmético-lógicas, las matrices deben tener el mismo número de filas y columnas.
En el caso de la multiplicación %*%, el nº de columnas de la primera matriz debe ser igual al nº de filas de la segunda matriz
![Page 18: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/18.jpg)
MATRICES: funciones relevantes Concatenación de matrices> cbind(M1, M2) # Concatena las matrices por columnas
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 5 9 0 4 8
[2,] 3 7 11 2 6 10
> rbind(M1, M2) # Concatena las matrices por filas
[,1] [,2] [,3]
[1,] 1 5 9
[2,] 3 7 11
[3,] 0 4 8
[4,] 2 6 10
![Page 19: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/19.jpg)
MATRICES: funciones relevantes Las matrices deben tener el mismo número
de filas para concatenar por filas.
Las matrices deben tener el mismo número de columnas para concatenar por columnas.
![Page 20: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/20.jpg)
MATRICES: funciones relevantes La función apply permite aplicar una función
a todas las filas, columnas o elementos de una matriz.
> apply(M1, 1, mean) # Calcula la media de cada fila
[1] 5 7
> apply(M1, 2, mean) # Calcula la media de cada columna
[1] 2 6 10
> apply(M1, c(1, 2), sqrt) # Calcula la raíz cuadrada de cada elemento.
[,1] [,2] [,3]
[1,] 1.000000 2.236068 3.000000
[2,] 1.732051 2.645751 3.316625
![Page 21: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/21.jpg)
MATRICES: funciones relevantes Otras funciones útiles:> rowSums(M1)
[1] 15 21
> colSums(M1)
[1] 4 12 20
> rowMeans(M1)
[1] 5 7
> colMeans(M1)
[1] 2 6 10
![Page 22: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/22.jpg)
TIPOS DE DATOSo Simples:
Numéricos Lógicos Caracteres Cadenas
o Compuestos Vectores Listas Matrices Marcos de datos
![Page 23: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/23.jpg)
MARCOS DE DATOS: constructores Estructura más genérica que una matriz. Es como una matriz con la posibilidad de
tener elementos de distintos tipos en las columnas.
Para crear un marco de datos se utiliza la función data.frame
> altura <- c(150, 135, 210, 140)
> peso <- c(65, 61, 100, 65)
> sexo <- c("F", "F", "M", "F")
> estudio <- data.frame(peso,altura,sexo)
![Page 24: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/24.jpg)
MARCOS DE DATOS: constructores Las columnas reciben el nombre de las variables
que se utilizaron. Por defecto, las filas reciben los nombres
“1”,”2”,”3”,...> estudio
peso altura sexo
1 65 150 F
2 61 135 F
3 100 210 M
4 65 140 F
> rownames(estudio)
[1] "1" "2" "3" "4"
> colnames(estudio)
[1] "peso" "altura" "sexo"
![Page 25: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/25.jpg)
MARCOS DE DATOS: constructores Podemos definir el nombre de las filas> rownames(estudio) <- c("Marta", "Inés", "Juan", "Carmen")
> estudio
peso altura sexo
Marta 65 150 F
Inés 61 135 F
Juan 100 210 M
Carmen 65 140 F
![Page 26: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/26.jpg)
MARCOS DE DATOS: accesores Acceso a datos> estudio["Marta", "peso"] # El peso de Marta
[1] 65
> estudio[, "peso"] # La columna de pesos. Es un vector.
[1] 65 61 100 65
> estudio["Marta",] # Los datos de Marta. Es un marco de datos.
peso altura sexo
Marta 65 150 F
![Page 27: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/27.jpg)
MARCOS DE DATOS: accesores Acceso a datos> estudio[["peso"]] # La columna de pesos. Es un vector.
[1] 65 61 100 65
> estudio[c("peso", "altura")] # Las columnas de pesos y alturas. Es un marco de datos.
peso altura
Marta 65 150
Inés 61 135
Juan 100 210
Carmen 65 140
![Page 28: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/28.jpg)
LECTURA DE DATOS Podemos leer un marco de datos desde un
fichero de texto mediante la función read.table El fichero debe seguir un formato:
Todas las filas deben tener el mismo número de elementos, salvo la primera, que tiene uno menos.
La primera fila contiene los nombres de las columnas. El resto de filas contienen como primer elemento e nombre de la fila y como resto de elementos los datos.
Los datos se separan por espacios en blanco.La coma de los decimales es un punto (.)Los valores desconocidos se expresan como NA
![Page 29: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/29.jpg)
LECTURA DE DATOS Ejemplo de fichero: estudio.txt
“Peso” “altura” “sexo”
“Marta” 65 150 “F”
“Inés” 61 135 “F”
“Juan” 100 210 “M”
“Carmen” 65 140 “F”
Lectura del fichero> estudio1 <- read.table(“estudio.txt”)
![Page 30: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/30.jpg)
LECTURA DE DATOS La función count.fields cuenta los elementos
de cada fila de un fichero.
> count.fields(“estudio.txt”)
[1] 3 4 4 4 4
![Page 31: UNIDAD 4: MATRICES, MARCOS DE DATOS Y …fran/TIB/semana4.pdf · Ciencias de la Computación e Inteligencia Artificial ... para la asignatura Informática Aplicada a la Bioquímica](https://reader033.fdocuments.net/reader033/viewer/2022051407/5ba9216109d3f2810a8bcb5f/html5/thumbnails/31.jpg)
This work is licensed under the Creative Commons Attribution-NonCommercial NoDerivs 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/3.0/.
Estas transparencias están basadas en el material docente desarrollado por Francisco J. Romero Campero e Ignacio Pérez Hurtado de Mendoza para la asignatura Informática Aplicada a la Bioquímica del Grado Conjunto en Bioquímica por la Universidad de Sevilla y la Universidad de Málaga (Andalucía Tech). Este trabajo está liberado bajo la licencia Creative Commons Attribution-NonCommercial NoDerivs 3.0 Unported License.