Trabajar con matrices en R es muy sencillo.
En primer lugar, para crear una matriz podemos transformar un vector:
> x <- 1:9
> X <- matrix(x, ncol=3)
Por defecto el relleno de la matriz se hace por columnas. Si queremos que sea por filas, hay que indicarlo:
> Y <- matrix(x, ncol=3, byrow=T)
En cuanto a las operaciones con matrices, la suma de dos matrices se consigue con el operador "+"
> X + Y
El producto ordinario se puede hacer con el operador "*", pero éste sirve para calcular el producto término a término. No es el producto matricial.
El producto matricial se obtiene con el operador "%*%":
> X %*% Y
Recordar que es necesario que el número de columnas de la primera matriz coincida con el número de filas de la segunda.
La función t() calcula la matriz traspuesta:
> A <- t(X) %*% X
La función diag() se puede utilizar en dos sentidos, para construir una matriz diagonal o para extraer la diagonal de una matriz cuadrada:
> diag(1:3)
> d <- diag(X)
El determinante de una matriz cuadrada se consigue con la función det(). En cuanto a la inversa de una matriz, si tiene, se calcula con la función solve():
> b <- c(1,0,2,-1,1,0,0,0,1)
> B <- matrix(b, ncol=3)
> det(B) # no es cero, luego es inversible
> solve(B)
Si lo que queremos son los valores y los vectores propios de una matriz, debemos utilizar la función eigen() que nos da una lista:
> r.list <- eigen(X)
> valor.propio1 <- r.list$values[1]
> vector.propio1 <- r.list$vectors[ ,1]
Finalmente, si lo que queremos es la g-inversa de una matriz, podemos utilizar la función ginv() del paquete MASS que calcula la g-inversa de Moore-Penrose:
> library(MASS)
> ginv(X)
Suscribirse a:
Enviar comentarios (Atom)
holas.........porfavor me pueden ayudar necesito hacer el calculo de analisis de componentes para los que no sepan involucra sacar matriz de varianza-covarianza, valores y vectores propios y soy nueva en R ...............alguien tine un manual
ResponderEliminarles agradeceria
Que mierda de programa es R...
ResponderEliminar