Está en la página 1de 15

Una introduccin a R

Wouter Buytaert
w.buytaert@imperial.ac.uk

Una introduccin a R
Lenguajes de programacin y R
Funcionalidad bsica
Objetos, clases y funciones
Funcionalidad adicional: instalar bibliotecas
El sistema help
Ejercicios

Lenguajes de programacin y R
* Tipos de lenguajes de programacin:
- lenguajes compilados (C, C++, Fortran)
- lenguajes interpretados (Matlab, Python, R)
* Lenguaje tipo orientado a objetos, disponibilidad de clases y mtodos, dispatch etc.
* Implementacin de cdigo abierto, derivado de S y Scheme
* http://www.r-project.org
* Es una buena prctica usar scripts de cdigo donde se guarda la historia del anlisis
e.g. input.R
interpolacin.R
Se puede empezar un nuevo script va el menu file new script

Funcionalidad bsica
El prompt:
> 42/7.3

[enter]

> 5 + 6 + 5 + 3 + 4 + 3 + 2 + 5 + 6 +

[enter]

[enter]

3 + 2 + 7

> 2 + 3; 5 - 6; 7 * 4 ; 2^2

[enter]

Funciones y constantes incluidas:


> log(10)
> exp(1)
> tan(pi/4)
> cos(pi/2)

Otros operadores: **, &&, &/&, !, ==, >=, etc.


Otros funciones: sqrt(x), acos(x), asin(x), choose(n,x), floor(x), ceiling(x), ...

Valores especiales
> 3 / 0
> -12 / 0
> exp(-Inf)
> 0 / Inf
> 0 / 0
> Inf / Inf
> is.finite(10)
> is.infinite(3 / 0)

Valores perdidos
> NA
> log(NA)

Guardar variables
> a <- 16
> a = 16
> sqrt(a)
> a
Reemplazar variables
> a <- sqrt(a)
Eliminar variables
> rm(a)
Rastrear las variables presentes en la memoria
> ls()
Guardar las variables entre sesiones de R
> q(save = "yes")

Tipos de variables bsicas: logical (lgicos), integer (enteros), real (reales),


complejo (complejos), string (cadenas de texto), raw (crudos):
> FALSE | TRUE; FALSE & TRUE
> 3 + 5i
> myname <- wouter
> as.raw(16); as.raw(15)

Muchas veces, R convierte automticamente de un tipo a otro. Sino, se puede


convertir explcitamente:
> TRUE * 5
> as.integer(15.354)
> as.character(32)

Clculos vectoriales
> x <- c(1,2,3,4,5,6,7,8,9)
> y <- c(9:1)
> x + y; x * y
> sqrt(x)

Funciones de vector
> max(x)
> sum(x)
> var(x)
> cor(x,y)
> print(x)
> summary(x)
> x[1]; x[5:6]

Objetos, clases y mtodos


R es un lenguaje de programacion orientado a objetos. Usa un paradigma de
programacin que usa objetos y sus interacciones para disear aplicaciones y
programas informticos. Est basado en varias tcnicas, incluyendo herencia,
abstraccin, polimorfismo y encapsulamiento. Algunos conceptos fundamentales
son:

Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y de


comportamiento o funcionalidad (mtodos)
Clase: definiciones de las propiedades y comportamiento de un tipo de objeto
concreto.
Mtodo: Algoritmo asociado a un objeto. Desde el punto de vista del
comportamiento, es lo que el objeto puede hacer.

a <- log(16)

Objeto de una cierta clase


(que puede ser diferente de
la clase ingresada en el mtodo)

Objeto de una cierta clase que sirve


como argumento de la funcin log
Mtodo

> class(16)
> class(TRUE)
> class(log)
> class(wouter
> sum(wouter)

Una clase fundamental en R: el data.frame


> medicion <- c(0, 2.5, 1.2, 0)
> tiempo <- c(6h, 12h, 18h, 24h)
> personal <- c(Luis, Luis, Juan, Juan)
> misdatos <- data.frame(medicion, tiempo, personal)
> misdatos
> summary(misdatos)
>
>
>
>
>

misdatos[1,]
misdatos[,1]
misdatos[, tiempo]
misdatos$tiempo
misdatos[,misdatos$personal == Juan]

data.frame.R

Escribir sus propias funciones en R


>
+
+
+
>
>
>

mifunc <- function(x){


y <- x + 3
return(y)
}
misdatos <- c(1,2,3,4)
mifunc(misdatos)

Funcionalidad adicional: paquetes


Mucha gente ha contribuido a la funcionalidad en R. Una lista de paquetes
creados por diferentes personas est disponible en el sitio de R (http://cran.rproject.org).
Instalacin de paquetes:
> install.packages(sp)
> install.packages(rgdal)
(Tambin se puede instalar paquetes a travs del menu de windows)
Cargar paquetes:
> library(sp)
> library(rgdal)

El sistema help
Sistema de help incluido en R:
> help.start()
Informacin sobre una funcin en especial
> ?read.table
Si no se recuerda el nombre de la funcin:
> help.search(data input)
Encontrar la biblioteca de una funcin:
> find(lowess)
Ejemplos:
> example(lm)
Mas informacin: http://cran.r-project.org

Ejercicios
1. En qu biblioteca se encuentra la funcin ts() y que hace?
2. Cul es la diferencia entre las funciones rank() y sort()?
3. matriz <- matrix(1:100, nrow = 10)
Cmo se saca el valor 66 de la matriz?
4. mydata <- c(6, 3, 4, 8, 7, 6, 9, NA, 10)
Cul es la diferencia entre el comportamiento mydata[6] y mydata[-6]
Cmo se calcula el promedio de los datos?

También podría gustarte