Tutorial de
Departamento de Teoría de la Señal, Telemática y Comunicaciones
Javier Ramírez Pérez de Inestrosa
Universidad de Granada
Instalación de R
Descarga de:
Manuales:
Paquetes:
Rwave
signalextraction
wavelets
waveslim
FKF
KFAS
robfilter
sapa
biOps
biOpsGUI
PET
ReadImages
rimage
ripa
class
http://www.r-project.org/
http://cran.r-project.org/manuals.html
http://cran.r-project.org/web/packages/
Time-Frequency analysis of 1-D signals
Real-Time Signal Extraction (Direct Filter Approach)
A package of funtions for computing wavelet filters, wavelet transforms and multiresolution analyses
Basic wavelet routines for one-, two- and three-dimensional signal processing
Fast Kalman Filter
Multivariate Kalman filter and smoother, simulation smoother and forecasting of state space models.
State smoothing and approximate likelihood of exponential family state space models
Robust Time Series Filters
Insightful Spectral Analysis for Physical Applications
Image processing and analysis
GUI for Basic image operations
Simulation and Reconstruction of PET Images
Image Reading Module for R
Image Processing Module for R
R Image Processing and Analysis
Functions for Classification
Introducción a R. Javier Ramírez Pérez de Inestrosa
Entorno de trabajo
Introducción a R. Javier Ramírez Pérez de Inestrosa
Demostraciones y Ayuda
demo()
Para ver todas las demostraciones incluidas en los paquetes:
demo(package = .packages(all.available = TRUE))
Demostraciones interesantes:
demo(graphics)
demo(image)
Obtención de ayuda:
help()
help(qnorm)
Introducción a R. Javier Ramírez Pérez de Inestrosa
Vectores y asignaciones
x <- c(10.4, 5.6, 3.1, 6.4, 21.7)
x[1]
[1] 10.4
Alternativas:
x = c(10.4, 5.6, 3.1, 6.4, 21.7)
assign("x", c(10.4, 5.6, 3.1, 6.4, 21.7))
c(10.4, 5.6, 3.1, 6.4, 21.7) -> x
% Asignación de vectores.
% Indexado de vectores
% =
% Comando assign
% Asignación en dirección opuesta.
y <- c(x, 0, x)
[1] 10.4 5.6 3.1 6.4 21.7 0.0 10.4 5.6 3.1 6.4 21.7
Introducción a R. Javier Ramírez Pérez de Inestrosa
Operaciones con vectores
Operadores usuales:
Funciones aritméticas:
Máximo, mínimo y rango:
Longitud:
Producto y suma
Media y varianza
+, -, *, / y ^
log, exp, sin, cos, tan, sqrt, etc.
max, min, range
length
prod, sum
mean, var
equiv. a c(min(x), max(x))
Si la entrada de var es una matriz nxp
sort
Ordenación
Números complejos
var calcula la matriz de covarianza (pxp)
Introducción a R. Javier Ramírez Pérez de Inestrosa
Generación de secuencias regulares
Secuencia creciente
1:10
Prioridades: 2*1:15 [1] 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
Ejercicio: n<-10 1:n-1 1:(n-1)
30:1
Función seq(from=value,to=value,by=value,length=value,along=vector)
Secuencia decreciente
Ejemplos: seq(1,30), seq(from=1, to=30), seq(to=30, from=1)
seq(-5, 5, by=.2) -> s3
s4 <- seq(length=51, from=-5, by=.2)
Función rep()
Ejemplos: s5 <- rep(x, times=5), s6 <- rep(x, each=5)
Introducción a R. Javier Ramírez Pérez de Inestrosa
Operaciones lógicas
temp <- x > 13
Operaciones lógicas:
AND(&), OR (|), NOT (!)
%Toma valores FALSE and TRUE
<, <=, >, >=, == y !=
Introducción a R. Javier Ramírez Pérez de Inestrosa
Redimensionado e indexación de matrices
Redimensionado de vectores:
Si z es un vector de 1500 elementos
dim(z) <- c(3,5,100) Redimensiona z a un vector de 3x5x100.
Indexación z[, ,]
Ejemplo:
z= 1:1500
dim(z) <- c(3,5,100)
dim(z)
z[2,4,2]
z[2,,]
% Salida:
% Salida:
% Submatriz de 5x100 elementos de z.
[1] 3 5 100
[1] 26
Introducción a R. Javier Ramírez Pérez de Inestrosa
Indexación de matrices
Ejemplo: X es una matriz 4x5 y se desea:
1) Extraer X[1,3], X[2,2] y X[3,1] y
2) reemplazar estos valores por 0
x <- array(1:20, dim=c(4,5))
x
i <- array(c(1:3,3:1), dim=c(3,2))
i
x[i] <- 0
x
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
[,1] [,2]
[1,] 1 3
[2,] 2 2
[3,] 3 1
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 0 13 17
[2,] 2 0 10 14 18
[3,] 0 7 11 15 19
[4,] 4 8 12 16 20
Introducción a R. Javier Ramírez Pérez de Inestrosa
Construcción de matrices
Función matrix()
A <- matrix(0, 10, 5) % Crea una matriz A de ceros de 10x5.
Creación de matrices a través de vectores: Z <- array(data_vector, dim_vector)
, , 1
, , 2
[,1] [,2] [,3] [,4]
[3,] 3 6 9 12
[1,] 1 4 7 10
[2,] 2 5 8 11
h= 1:30
Z <- array(h, dim=c(3,4,2))
Z
Equivalente a
Z <- h ; dim(Z) <- c(3,4,2)
Si la longitud de h es inferior a 24 se reutilizarían sus valores
h= 1:10
Z <- array(h, dim=c(3,4,2))
[,1] [,2] [,3] [,4]
[1,] 13 16 19 22
[2,] 14 17 20 23
[3,] 15 18 21 24
, , 1
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 1
[3,] 3 6 9 2
, , 2
[,1] [,2] [,3] [,4]
[1,] 3 6 9 2
[2,] 4 7 10 3
[3,] 5 8 1 4
Introducción a R. Javier Ramírez Pérez de Inestrosa
cbind y rbind
Crea matrices por concatenación horizontal
cbind
X <- cbind(arg_1, arg_2, arg_3, ...)
Los argumentos pueden ser vectores, o matrices del mismo número de cols.
A <- matrix(0, 3, 3)
B <- matrix(1, 3, 3)
X= cbind(A,B)
v= 1:3
cbind(v,v,v)
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 0 0 0 1 1 1
[2,] 0 0 0 1 1 1
[3,] 0 0 0 1 1 1
v v v
[1,] 1 1 1
[2,] 2 2 2
[3,] 3 3 3
rbind
Crea matrices por concatenación vertical
Y= rbind(A,B)
rbind(v,v,v)
[,1] [,2] [,3]
v 1 2 3
v 1 2 3
v 1 2 3
[,1] [,2] [,3]
[1,] 0 0 0
[2,] 0 0 0
[3,] 0 0 0
[4,] 1 1 1
[5,] 1 1 1
[6,] 1 1 1
Introducción a R. Javier Ramírez Pérez de Inestrosa
Operaciones con matrices
Las operaciones se realizan componente a componente:
A= matrix(1,3,3)
C= matrix(2,3,3)
C= matrix(3,3,3)
Z= A*B+2*C+1
> A
[,1] [,2] [,3]
[1,] 1 1 1
[2,] 1 1 1
[3,] 1 1 1
> B
[,1] [,2] [,3]
[1,] 2 2 2
[2,] 2 2 2
[3,] 2 2 2
> C
[,1] [,2] [,3]
[1,] 3 3 3
[2,] 3 3 3
[3,] 3 3 3
> Z= A*B+2*C+1
>
> Z
[,1] [,2] [,3]
[1,] 9 9 9
[2,] 9 9 9
[3,] 9 9 9
Introducción a R. Javier Ramírez Pérez de Inestrosa
Operaciones con matrices
Outer product: Operador %o%
Contiene todos los posibles productos de los dos vectores.
x= 1:10 y= 10:1
xy <- x %o% y
xy
Equivalente a:
xy <- outer(x, y, "*")
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 10 9 8 7 6 5 4 3 2 1
[2,] 20 18 16 14 12 10 8 6 4 2
[3,] 30 27 24 21 18 15 12 9 6 3
[4,] 40 36 32 28 24 20 16 12 8 4
[5,] 50 45 40 35 30 25 20 15 10 5
[6,] 60 54 48 42 36 30 24 18 12 6
[7,] 70 63 56 49 42 35 28 21 14 7
[8,] 80 72 64 56 48 40 32 24 16 8
[9,] 90 81 72 63 54 45 36 27 18 9
[10,] 100 90 80 70 60 50 40 30 20 10
Es útil en la evaluación de funciones bidimensionales en 1 grid 2D:
f <- function(x, y) cos(y)/(1 + x^2)
z <- outer(x, y, f)
Introducción a R. Javier Ramírez Pérez de Inestrosa
Producto de matrices y sistemas de ecuaciones
A*B Calcula el producto componente a componente.
Producto de matrices: A %*% B
Elementos de la diagonal:
diag(v) v vector
x=1:10 diag(x)
diag(M)
M matriz
Construye una matriz diagonal
Extrae los elementos de la diagonal de M.
x= 1:10 y=1:10 xy <- outer(x, y, "*") diag(xy)
Resolución de sistemas de ecuaciones lineales: Ax= b
x= solve(A,b)
Introducción a R. Javier Ramírez Pérez de Inestrosa
Autovalores y autovectores de una matriz
ev <- eigen(Sm)
Sm= c(1, sqrt(2), sqrt(2), 1)
dim(Sm)<-c(2,2)
Singular value decomposition:
M= UDVT
Si M es cuadrada, el determinante:
absdetM <- prod(svd(M)$d)
Como función:
absdet <- function(M) prod(svd(M)$d)
> ev<- eigen(Sm)
> ev$val
[1] 2.4142136 -0.4142136
> ev$vec
[,1] [,2]
[1,] 0.7071068 -0.7071068
[2,] 0.7071068 0.7071068
> svd(Sm)
$d
[1] 2.4142136 0.4142136
$u
[,1] [,2]
[1,] -0.7071068 -0.7071068
[2,] -0.7071068 0.7071068
$v
[,1] [,2]
[1,] -0.7071068 0.7071068
[2,] -0.7071068 -0.7071068
Introducción a R. Javier Ramírez Pérez de Inestrosa
Funciones de probabilidad
R evalúa:
Función de distribución acumulada: Función de x
P(X <= x)
Prefijo:
p
Ej:. pnorm(…)
Función densidad de probabilidad:
Prefijo
d
Ej.: dnorm(…)
Función cuantil: Función de q (valor de probabilidad)
El valor más pequeño de x tal que
P(X <= x) > q para cada q.
Prefijo:
q
Ej,: qnorm(…)
Distribution
R name
additional arguments
beta
beta
shape1, shape2, ncp
binomial
binom
size, prob
Cauchy
cauchy
l
Comentarios de: Tutorial de R (0)
No hay comentarios