Upload
iago-la-madrid
View
8
Download
0
Embed Size (px)
Citation preview
RR
IntroducciónIntroducción
R es una versión del lenguaje de programación R es una versión del lenguaje de programación S desarrollado por John Chambers en los S desarrollado por John Chambers en los laboratorios Bell en 1976. laboratorios Bell en 1976.
R fue escrito inicialmente por Robert R fue escrito inicialmente por Robert Gentleman y Ross Ihaka en 1995. Gentleman y Ross Ihaka en 1995.
R es un lenguaje de programación que R es un lenguaje de programación que implementa varios paquetes para análisis implementa varios paquetes para análisis estadísticos. estadísticos.
R es un lenguaje no tipeado. R es un lenguaje no tipeado.
Se pueden extender las funciones de R Se pueden extender las funciones de R instalando varios paquetes. instalando varios paquetes.
http://cran.r-project.org/mirrors.htmlhttp://cran.r-project.org/mirrors.html
R es un lenguaje interpretado y orientado a R es un lenguaje interpretado y orientado a objetos. objetos.
Ejecución de R en UNIXEjecución de R en UNIX
RR
R: Copyright 2001, The R Development Core TeamR: Copyright 2001, The R Development Core TeamVersion 1.2.1 (2001-01-15)Version 1.2.1 (2001-01-15)
R is free software and comes with ABSOLUTELY NO R is free software and comes with ABSOLUTELY NO WARRANTY. WARRANTY. You are welcome to redistribute it under certain You are welcome to redistribute it under certain conditionsconditionsType ‘license ()’ or ‘licence()’ for distribution detailsType ‘license ()’ or ‘licence()’ for distribution details>>
Como funciona RComo funciona R
ObjetosObjetosLas variables, datos, arreglos, etc., se Las variables, datos, arreglos, etc., se guardan en la memoria de la computadora guardan en la memoria de la computadora en forma de objetos, con un nombre en en forma de objetos, con un nombre en específico. El usuario puede modificar o específico. El usuario puede modificar o manipular estos objetos por medio de manipular estos objetos por medio de operadores (aritméticos, logicos) y funciones operadores (aritméticos, logicos) y funciones (otros objetos). (otros objetos).
Creación de un objeto. Creación de un objeto. > A <- 1> A <- 1
> A = 1> A = 1
> assign(“A”, 1)> assign(“A”, 1)
> A> A[1] 1[1] 1
Los nombres pueden usar dígitos, caracteres Los nombres pueden usar dígitos, caracteres alfanumércios y “.”, “-”. alfanumércios y “.”, “-”.
Los nombres pueden empezar con “.” o letras, Los nombres pueden empezar con “.” o letras, si empieza con “.” el segundo cracter no debe si empieza con “.” el segundo cracter no debe ser un dígito. ser un dígito.
Durante una sesión los objetos creados son Durante una sesión los objetos creados son almacenados, hasta que se termine la sesión o almacenados, hasta que se termine la sesión o sean removidos. sean removidos.
> ls()> ls()
>objects()>objects()
Ls lista los objetos almacenados en la memoria. Ls lista los objetos almacenados en la memoria. A la colección de objetos almacenados en A la colección de objetos almacenados en memoria se le denomina memoria se le denomina workspaceworkspace
Para removerlosPara removerlos
> rm(A)> rm(A)
AyudaAyuda
> ?ls> ?ls
> help(ls)> help(ls)
> help(“ls”)> help(“ls”)
Para ver la ayuda en formato htmlPara ver la ayuda en formato html
> help.start()> help.start()
ls.strls.str
aproposapropos
c( )c( )
max( ), min ( )max( ), min ( )
sort( )sort( )
:, seq( ):, seq( )
aproposapropos
La función apropos encuentra todas aquellas La función apropos encuentra todas aquellas funciones cuyo nombre contiene la palabra funciones cuyo nombre contiene la palabra dada como argumento, para los paquetes dada como argumento, para los paquetes cargados en memoria.cargados en memoria.
> apropos(matrix)> apropos(matrix)
> apropos(list)> apropos(list)
> apropos(factor)> apropos(factor)
> apropos(plot)> apropos(plot)
VectoresVectores
> x <- c(5, 7, 10.4, 6.8, 4.32)> x <- c(5, 7, 10.4, 6.8, 4.32)
> 1 / x> 1 / x
> y <- c(x, 0, x)> y <- c(x, 0, x)
> m <- rep(“ no”, 50)> m <- rep(“ no”, 50)
> s <- sample( c ( “A”, “C”, “G”, “T”), size = 10> s <- sample( c ( “A”, “C”, “G”, “T”), size = 10+ replace = TRUE)+ replace = TRUE)
> e <- 1; e[3] <- 17> e <- 1; e[3] <- 17
Aritmética con vectores Aritmética con vectores (reciclaje)(reciclaje)
> y <- c(1, 2)> y <- c(1, 2)
> v <- 2 * x + y> v <- 2 * x + y
> a <- (4, 6, 7, 5, 3, 8)> a <- (4, 6, 7, 5, 3, 8)
> v <- 2* a + y> v <- 2* a + y
c(2, 3) + c( 3, 4, 5)c(2, 3) + c( 3, 4, 5)
c( 2, 3 ) + c( 3, 4, 5, 8 )c( 2, 3 ) + c( 3, 4, 5, 8 )
Secuencias RegularesSecuencias Regulares
1 : 30 = c( 1, 2, ......, 29, 30)1 : 30 = c( 1, 2, ......, 29, 30)
: Tiene la mayor prioridad en una expresión: Tiene la mayor prioridad en una expresión
1: n - 1 1 : ( n - 1 )1: n - 1 1 : ( n - 1 )
seq ( 2: 5)seq ( 2: 5)
Vectores LógicosVectores Lógicos
Los operadores lógicos son <, <=, >, >=, Los operadores lógicos son <, <=, >, >=, ==, !===, !=
> vector <- x > 6.1> vector <- x > 6.1
Combinaciones de Combinaciones de VectoresVectores
expand.grid() crea un marco de datos con expand.grid() crea un marco de datos con todas las combinaciones de vectores todas las combinaciones de vectores proporcionados como argumentosproporcionados como argumentos
> expand.grid(a=c(60, 80), p=c(100, 300), > expand.grid(a=c(60, 80), p=c(100, 300), sexo=c(“m”, “f”))sexo=c(“m”, “f”))
AtributosAtributos
Los vectores deben tener todos los valores del Los vectores deben tener todos los valores del mismo tipo. (numéricos, complejos, lógicos, mismo tipo. (numéricos, complejos, lógicos, caracteres)caracteres)
mode(objeto)mode(objeto)
length(objeto)length(objeto)
La función as, puede cambiar el modo de un La función as, puede cambiar el modo de un objetoobjeto
as.numeric( x )as.numeric( x )
N <- (100.75, 98.7, 64.2, 157.5, 236, 103)N <- (100.75, 98.7, 64.2, 157.5, 236, 103)
PromedioPromedio
Desviación estandardDesviación estandard
longitud del vectorlongitud del vector
Vector ordeado de mayor a menorVector ordeado de mayor a menor
MatricesMatrices
Las matrices o arreglos multidimensionales, Las matrices o arreglos multidimensionales, son vecotores con un vector de dimensión NO son vecotores con un vector de dimensión NO NULONULO
> V <- runif(100)> V <- runif(100)> dim(V) <- c(2, 5, 10)> dim(V) <- c(2, 5, 10)> V> V> V2 <- array( V, dim= c(2, 5, 10)> V2 <- array( V, dim= c(2, 5, 10)> all (V2 == V)> all (V2 == V)dim(V) <- NULLdim(V) <- NULL
> x <- array(1: 20, dim = c(4, 5))> x <- array(1: 20, dim = c(4, 5))
> i <- array(c(1:3, 3:1), dim= c(3, 2))> i <- array(c(1:3, 3:1), dim= c(3, 2))
> x[i] <- 0> x[i] <- 0
> x> x
Operaciones con Operaciones con matricesmatrices
solve : X solve : X -1-1
t : Xt : Xtt
outer(%o%) el producto de dos vectores xxouter(%o%) el producto de dos vectores xxtt
kronecker(%x%)kronecker(%x%)
crossprod, tcrossprod: Acrossprod, tcrossprod: Attx, Axx, Axtt
eigeneigen
%*% multiplicacion*%*% multiplicacion*
Generar un vector del 1 al 100Generar un vector del 1 al 100
Convertirlo a una matriz de 10 * 10Convertirlo a una matriz de 10 * 10
Obtener la suma de los elementos que se Obtener la suma de los elementos que se encuentran en la columna 5encuentran en la columna 5
Obtener su matriz transpuestaObtener su matriz transpuesta
Multiplicar la transpuesta de la matriz, por la Multiplicar la transpuesta de la matriz, por la matriz originalmatriz original
obtener los eigen valores de ambas matricesobtener los eigen valores de ambas matrices
Secuencias aleatoriasSecuencias aleatorias
Estas funciones son de la forma rfunc(n, p1, Estas funciones son de la forma rfunc(n, p1, p2, ..) donde dunc indica la distribucion, n es el p2, ..) donde dunc indica la distribucion, n es el número de datos generados y p1, p2, ... son número de datos generados y p1, p2, ... son valores que toman los parametros de la valores que toman los parametros de la distribuciondistribucion
d{distribution} densidad de probabilidad d{distribution} densidad de probabilidad acumuladaacumulada
p{distibution} densidad de probabilidadp{distibution} densidad de probabilidad
r{distribution}r{distribution}
q{distribution} el valor del cuartilq{distribution} el valor del cuartil
Estructuras de contol Estructuras de contol (if)(if)
if (1 == 0 ) {if (1 == 0 ) { print (1 ) print (1 )} else {} else { print (2 ) print (2 )}}
if elseif elseifelse(prueba, valor-verdadero, valor-falso)ifelse(prueba, valor-verdadero, valor-falso)
x <- 1: 10x <- 1: 10ifelse( x < 5 | x > 8, x, 0)ifelse( x < 5 | x > 8, x, 0)
forfor
> x <- 1: 10> x <- 1: 10for ( i in 1: length(x)) {for ( i in 1: length(x)) { if ( x[ i ] < 5 ){ if ( x[ i ] < 5 ){ print( 2 ) print( 2 ) } else { } else { print (1) print (1) } }}}
> while ( i < 10 ) {> while ( i < 10 ) {................}}
i <- 1i <- 1repeat {repeat { if ( i > 10) if ( i > 10) break break print (i) print (i) i <- i + 1 i <- i + 1}}
FuncionesFunciones
> fx <- function( x, y) {> fx <- function( x, y) {+ x ^y+ x ^y+ }+ }
fx(1:10, 1: 10)fx(1:10, 1: 10)
fx (4, 2)fx (4, 2)
fx(1: 10, 2:5)fx(1: 10, 2:5)
> fx <- function( x, y) {> fx <- function( x, y) {+ x ^y+ x ^y+ }+ }
fxy(rep(2, 8), seq(2, 16, by 2))fxy(rep(2, 8), seq(2, 16, by 2))
ExpresionesExpresiones
Una expresion es una serie de caracteres que Una expresion es una serie de caracteres que hace sentido para R, todos los comandos hace sentido para R, todos los comandos válidos son expresiones. válidos son expresiones.
Cuando se escribe un comando en el teclado , Cuando se escribe un comando en el teclado , es evaluado por R y ejecutado si es valido. es evaluado por R y ejecutado si es valido.
expression permite construir una expresion sin expression permite construir una expresion sin evaluarla, esta despues puede ser evaluada evaluarla, esta despues puede ser evaluada con eval. con eval.
x <- 3; y <- 2; z <- 1;x <- 3; y <- 2; z <- 1;
exp <- expression(x / (y + exp(z)))exp <- expression(x / (y + exp(z)))
eval(exp1)eval(exp1)
Series de TiempoSeries de Tiempo
La función ts se puede usar con un vector La función ts se puede usar con un vector (serie de tiempo única) o una matriz( serie de (serie de tiempo única) o una matriz( serie de tiempo multivariada)tiempo multivariada)
ts(1: 47, frequency = 12, start = c(1952, 2)ts(1: 47, frequency = 12, start = c(1952, 2)