r. introducción r es una versión del lenguaje de programación s desarrollado por john chambers en...

Post on 06-Feb-2015

7 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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)

top related