Vous êtes sur la page 1sur 19

Introducción a R

Gabriel Martos, Alberto Muñoz

Septiembre, 2014

R es el entorno de programación y un lenguaje de popular utilización en al ámbito


de la estadística. Una de las principales ventajas de este programa es su gratuidad.
Es similar a otros paquetes de programación como Matlab (no gratuito), y mucho
más simple que otros lenguajes como C++ o Fortran.
Se puede utilizar R en su plataforma original, pero por motivos educacionales es
preferible trabajar en R desde R-studio (también gratuito), por disponer este último
de ventanas mejor organizadas y contar con más opciones gráficas.

Comenzando a utilizar el R
Instalar R en el ordenador
Para utilizar R primero debes instalar R en tu ordenador. Sigue las instrucciones:
 pincha en el link http://cran.r-project.org
 pincha download R for Windows (si utilizas linux o alguna otra plataforma elige
el fichero de descarga correspondiente)
 pincha en base
 elige Download R 3.1.1 for Windows (o la versión mas actualizada que figure en
la web) y elige las opciones por defecto en los cuadros de instalación.
Una vez hayas instalado R en tu ordenador, busca el icono de R en el escritorio y haz
doble click. Verás una ventana como esta:
esta es la interfaz de R. Te recomendamos sin embargo que utilizes R-sutdio como
interfaz de programación. Para ello debes instalar R-studio. Haz un click en el link
anterior (www.rstudio.prg) y sigue las intrucciones:
 abre http://www.rstudio.com
 click Download Rstudio
 click Download Rstudio Desktop
 elige la versión adecuada para tu sistema operativo
 descarga el fichero .exe y ejecutalo
 elige las respuestas por defecto en las ventanas de instalación
Una vez finalizada la instalación haz doble-click en el icono de R-studio. Podrás ver
las siguientes ventanas:
 Console windows: aquí es donde escribimos los comandos que R interpreta y
que nos permiten hacer analisis estadístico.
 Editor window: en algunas ocasiones nos interesa utilizar reiteradas veces los
comandos que R ejecuta. Esta ventana sirve para ir guardando los comandos
que vamos ejecutando en R. Si quieres ejecutar algunos de los comandos
guardados, simplemente los seleccionas en esta ventana y presionas CTRL + R,
de esta manera los comandos selecionados se ejecutan en la consola de R.

 Workspace: aquí podrás observar los elementos que R mantiene en su


memoria.
 Files / Plots / Packages / Help: desde esta ventanas podrás visualizar los
gráficos creados, abrir ficheros, ver que paquetes tienes instalados y recurrir a
la ayuda del programa.

Librerias
R puede realizar varias tareas de análisis estadístico y de datos. Los comandos
necesesarios para ejecutar estas tareas se encuentran en los paquetes o librerias.
Con la instalación estandard de R, la mayor parte de estos paquetes se instalan
automaticamente.
En caso de necesitar alguna paquete adicional debes instalarlo manualmente y leer
el paquete antes de utilizarlo. Para ello debes utilizar la siguiente intrucción que
debes escribir en la consola de R:
install.packages('package_name')
library(package_name)

Primeros ejemplos de funciones en R


R como calculadora
R puede utilizarse como calculadora. Simplemente escribe la operación que deseas
realizar a continuación del simbolo ">" ay presiona la tecla enter. Aquí algunos
ejemplos:
1 + 1
## [1] 2
2*2
## [1] 4
3^3
## [1] 27
1 + 1 - sin(2*pi) + 4^2
## [1] 18
Para obener información adicional sobre las operaciones matemáticas habituales
(las que encuentras en una calculadora de mano) tipea help() + arithmetic, trig
(para funciones trigonométricas), log para funciones logaritmicas o special para
funciones especiales.
En R se pueden salvar los resultados de una operación o calcula:
a = 2*5
b = 2^2
a + b
## [1] 14

Verás que a y b aparecen en la ventana del workspace, esto quiere decir que ahora R
recuerda los valores de a y b. Si quieres borrar todo el contenido de la memoria de R,
tipea:
rm(list=ls())

Si encambio, solo deseas borrar a:


rm(a)

Scalares, vectores y Matrices en R


Como cualquier otro programa, R organiza números en scalares (simples números),
vectores (una fila de números) y matrices (una colección de vectores).
La manera de crear vectores en R es la siguiente:
scalar = 10
vector = c(1,2,3)

Para crear una matriz, primero necesitamos crear un vector con todos los elementos
de la matriz y luego indicarle a R en cuantas filas y columnas organizar los
elementos de este vector con el comando: matrix(data, nrow, ncol). Aquí tenemos
un ejemplo:
scalar = 10
vector = c(1,2,3)
matrix = matrix(c(1,2,3,4,5,6,7,8,9), ncol=3)
# Esta matriz contiene los números del 1 al 9.

# Para recobrar los elementos simplemente escribimos:


scalar
## [1] 10
vector
## [1] 1 2 3
matrix
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9

Para examinar la lingitud de un vecto utilizamos la función lenght, mientras que


para recuperar las dimensiones de una matriz utilizamos la función dim.
length(a) # Retorna la longitud del vector 'a'.
dim(B) # Retorna las dimensiones de la matriz 'B'.

Funciones sobre Matrices


 mode(A): propiedades de los elementos que contiene la matriz A.
 dim(A): dimensiones de la matriz A.
 colnames(A)= c('varname_1', ... ,'varname_n'): asignar conmbre a las columnas
de la matriz A (rownames(A) hace lo mismo con las filas de la matriz A).
 cbind() and rbind(): concatenar (unir) matrices por columna y por filas
respectivamente. He aquí algunos ejemplos de los comandos antes
mencionados:
A = matrix(c(1,2,3,4,5,6,7,8,9), ncol=3)
dim(A) # Gives number of rows and columns
## [1] 3 3
colnames(A)=c('col1','col2','col3')
A
## col1 col2 col3
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
B=rbind(A,A)
B # rbind concatenate A with A by rows.
## col1 col2 col3
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
## [4,] 1 4 7
## [5,] 2 5 8
## [6,] 3 6 9

Arrays, data frames y listas


Existen otros elementos un tanto mas sofisticados con los que trabajar en R. Un
array es una colección de matrices o vectores (de igual dimensión). Un data frame is
similar a una matriz, pero en el podemos guardad de manera indiferente columnas
con números y letras, esto hace que los data frames se utilizen de manera natural
para guardar datos en R. Una lista es una colección de cualquiera de los elementos
anteriores, pudiendo contener scalares, vectores, matrices, arrays, data frames e
inclusive otras listas.

Construyendo funciones en R
R trabaja con funciones que operan sobre los elementos de R. Por ejemplo, si
queremos computar la media de un vector de números, utilizamos la función mean,
como en el siguiente ejemplo:
a = c(1,2,3,4,5)
mean(a)
## [1] 3

Una de las fortalezas de R es su versatilidad para crear funciones propias. La


estructura de una función es de esta manera:
myfunction <- function(arg1, arg2, ... ){
statements
return(object)
}

Como ejemplo se propone una función que suma los elementos de un vector:
sumvector <- function(x){
output = sum(x)
return(output)
}

a = c(1,2,3,4,5,6,7,8,9,10)
sumvector(a)
## [1] 55

Leyendo y examinando datos


R puede leer y trabajar con casi todo tipo de fichero de datos. La manera más
versatil de trabajar con datos externos es guardando la base de datos en un data
frame. Para leer los datos que pueden provenir de un fichero externo utilizaremos el
comando "read.table", como en el siguiente ejemplo:
Mydataframe =
read.table('http://data.princeton.edu/wws509/datasets/effort.dat')
head(Mydataframe) # para ver las primeras filas de los datos.
## setting effort change
## Bolivia 46 0 1
## Brazil 74 0 10
## Chile 89 16 29
## Colombia 77 16 25
## CostaRica 84 21 29
## Cuba 89 15 40
Alternativamente, puedes bajar los datos y salvarlos en un fichero local. En este
caso, para leer los datos de un fichero local:
Mydataframe = read.table('C:/.../effort.dat')

Casi todos los formatos de datos son soportados por R, en caso de necesitar mas
ayuda tipea help(read.table) en la consola. Otras funciones útiles para leer datos
son las siguientes:
 choose.files(): para seleccionar manualmente un fichero de datos a leer en R.
 scan(file = 'C:/.../yourfile.dat'): es otra instrucción útil para leer ficheros
externos.
 Mas ejemplos sobre como importar/exportar datos en y desde R en este link

Attachando, accediendo y editando matrices y data frames


Para trabajar con los nombre de las columnas de una matriz o un data frame
necesitamos hacer un attach de los nombre de las columnas:
attach(Mydataframe)

De esta forma, podremos referirnos a las columnas del data frame (o la matriz) en la
consola y R entenderá que se trata de una columna del data frame o de la matriz.
Para acceder o ver una columna particular de un data frame o matriz, utilizamos el
simbolo $:
head(Mydataframe$setting) # para visualizar los primeros elementos de
la columna llamada "setting"
## [1] 46 74 89 77 84 89

Para filtrar elementos por filas o columnas utilizamos los operadores [ 'row' , 'col' ],
he aquí un ejemplo:
Mydataframe["Chile", c("setting", "effort")] # aquí veremos de la fila
que contiene a chile, las columnas "setting" y "effort".
## setting effort
## Chile 89 16

En caso de trabajar con matrices o vectors el operador [ 'row' , 'col' ] también


funciona. He aquí un ejemplo:
a = c(1,2,3,4,5)
a[3] # accedemos al 3er elemento del vector a.
## [1] 3
B = matrix(c(1,2,3,4), ncol=2)
B[1,2] # accedemos al elemento de la 1ra fila, 2da columna de la matriz
B.
## [1] 3
B[2, ] # accedemos a toda la segunda fila de B.
## [1] 2 4

Funciones standard para crear y editar vectores y matrices


La función rep vectores con numeros (o sequencias de números) repetidos. La
función seq sequencias de valores. Los siguientes ejemplos ilustran estas funciones:
a = rep(3, 8) # Generamos un vector que contiene el número 3, 8 veces.
a
## [1] 3 3 3 3 3 3 3 3
B = matrix(seq(1,9,by=1), ncol=3)
B # Una matriz con la sequencias de los números del 1 al 9, de 1 en 1.
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9

La función apply ejecuta funciones de R sobre filas o columnas de una matriz. Como
ejemplo, consideremos el computo de la media por filas y por culumnas de una
matriz con números:
B = matrix(seq(1,9,by=1), ncol=3)
apply(B, 1, mean) ### Calculamos la media por filas de B.
## [1] 4 5 6
apply(B, 2, mean) ### Calculamos la media por columnas de B.
## [1] 2 5 8

Para editar los elementos de una matriz o un vector utilizamos <- como en el
siguiente ejemplo:
B = matrix(seq(1,9,by=1), ncol=3)
B[3,] <- 15 # Cambiamos la ultima fila de la matriz, sustituyendo sus
valores por 15.
B
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 15 15 15

Graficos en R
R es una herramienta excelente para crear gráficas, desde histogramas y gráficos de
barras hasta complejos dibujos diseñados por el propio usuario.
Los siguientes son comandos útiles para gestionar las ventanas de gráficos en R:
 win.graph() or x11(): crea una ventana gráfica en R
 dev.off(): apaga todas las ventanas gráficas.
La función par() nos permite organizar múltiples gráficas en una sola ventana. He
aquí un ejemplo de como generar dos histogramas en la misma ventana:
x=rnorm(100)
par(mfrow=c(1,2)) # mfrow=c(1,2) organizar los graficos en 1 fila, 2
columnas.
hist(x) # el primer hist en la 1ra fila 1ra col
hist(x, col=2) # el segundo hist en la 1ra fila 2da col

La función hist(var) genera un histograma de la variable var. Existen muchas


opciones para configurar una gráfica. En el siguiente ejemplo dibujamos una gráfico
de barras y un boxplot de las notas de una clase de 20 estudiantes con la función
barplot:
# Barplot and boxplot:
marks=c(6,7,5,7,7,8,7,6,9,7,4,10,6,8,8,9,5,6,4,8)
table <- table(marks)
table
## marks
## 4 5 6 7 8 9 10
## 2 2 4 5 4 2 1
par(mfrow=c(1,2))
barplot(table,col='red' ,main='Barplot Marks')
boxplot(marks,col='blue',main='Boxplot Marks')

Otro ejemplo de gráfico de barras con múltiples casos:


data(VADeaths)
VADeaths
## Rural Male Rural Female Urban Male Urban Female
## 50-54 11.7 8.7 15.4 8.4
## 55-59 18.1 11.7 24.3 13.6
## 60-64 26.9 20.3 37.0 19.3
## 65-69 41.0 30.9 54.6 35.1
## 70-74 66.0 54.3 71.1 50.0
barplot(VADeaths)
La función plot se utiliza para graficar lineas o puntos, como en los ejemplos a
continuación:
x <- seq (-5, 5, length = 50)
par(mfrow=c(1,4))
plot(x, main='Plot of x') # First plot
plot(abs(x), type='l', main='Plot of |x|') # Second plot
plot((x-3)/(1 + x^2),type='l',col='red',main='Plot of (x-3)/(1 + x^2)')
# Third plot
plot(sin(x/2),type='l',col='blue', main='Plot of sin(x/2)') # Forth
plot
Tambien podemos utilizar la función plot() para hacer scatterplots en una matriz:
data(iris)
head(iris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
plot(iris[, 1:4], pch='*', col =iris$Species)
Parámetros útiles para la función plot:
 axes = F: si queremos ocultar los ejes del gráfico.
 type = 'p', 'l', 'b': para dibujar puntos (p), lineas (p) o ambos (b).
 xlab = 'X nombre' y ylab = 'Y nombre': para dar nombre a los ejes (X,Y).
 pch: para especificar el simbolo a utilizar en el gráfico (puntos, rectángulos,
triángulos, etc). col: el color de la linea/puntos.
 main: para incluír un titulo en la gráfica.
Para ilustrar la potencia gráfica de R, se incluyen los siguientes gráficos:
library(lattice)
b0 <- 10
b1 <- .5
b2 <- .3
g <- expand.grid(x = 1:20, y = 1:20)
g$z <- b0 + b1*g$x + b2*g$y

wireframe(z ~ x * y, data = g,
screen = list(z = 10, x = -60), drape=TRUE)
library(plot3D)
# 3D Plot of Half of a Torus
par(mar = c(2, 2, 2, 2))
par(mfrow = c(1, 1))
R <- 3
r <- 2
x <- seq(0, 2*pi,length.out=50)
y <- seq(0, pi,length.out=50)
M <- mesh(x, y)

alpha <- M$x


beta <- M$y

surf3D(x = (R + r*cos(alpha)) * cos(beta),


y = (R + r*cos(alpha)) * sin(beta),
z = r * sin(alpha),
colkey=FALSE,
bty="b2",
main="Half of a Torus")
Funciones estadísticas báscias en R
Las siguentes son funciones de uso estadístico básico en R:
 mean(): calcula la media.
 median(): calcula la mediana.
 min() y max(): calcula máximo y mínimo.
 range(): Devuelve el máximo y mínimo valor en un vector o matriz.
 quantile(): calcula los quantiles.
 var(): calcula la varianza.
 sd(): calcula la desviación estandard.
 summary(x): retorna los estadísticos básicos de un vector con datos: mean,
min, max etc.
 cumsum(); cumprod(); cummin(); cummax(): funciones acumulativas sobre
vectores.
 cor.test(): lleva a cabo un test de correlación.
 density(x): estima la densidad con un kernel.
 ks.test(): Kolmogorov-Smirnov tests.
 loess() and lowess(): dibuja una versión suavizada de los datos en un scatter.
 rnorm(), runif(): genera datos de una distribución normal o uniforme.
 t.test(): Student's t-test
 sample(): para generar muestras aleatorias
 ecdf(): computa la distrución empírica de los datos.
 qqplot(): gráfica de cuantiles.
Otras funciones útiles puedes consultarlas en el siguiente link

Vous aimerez peut-être aussi