Está en la página 1de 5

Taller de Introduccin a R

2.

Manipulacin de datos con R

ndice

2. Manipulacin de datos con R


2.1.

Objetos

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.1.

Tipos bsicos de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.2.

Atributos de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.3.

Objetos compuestos especiales

. . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2.

Lectura de datos almacenados en un archivo externo

2.3.

Guardado de datos en un archivo externo

2.4.

Vericacin de los datos

2.5.

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Seleccin y manipulacin de datos

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.5.1.

Indexacin de vectores y matrices.

. . . . . . . . . . . . . . . . . . . . . . . . .

2.5.2.

Seleccin de subconjuntos

2.5.3.

Combinacin de matrices y marcos de datos . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4
4

2.5.4.

Operadores

2.5.5.

Funciones para generacin de datos y modicacin de datos preexistentes

2.5.6.

Operaciones con matrices

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.6.

Funciones matemticas y estadsticas simples

2.7.

Qu hacer con los datos faltantes (NAs)

2.8.

Ejercicios

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1. Objetos
2.1.1. Tipos bsicos de objetos
Ver

R Language Denition: 2. Objects: Basic types .

2.1.2. Atributos de objetos


Ver

R Language Denition: 2. Objects: Attributes .

2.1.3. Objetos compuestos especiales


Ver

R Language Denition: 2. Objects: Special compound objects .

2.2. Lectura de datos almacenados en un archivo externo


Funciones

read.table(), read.delim( clipboard )

pg. 12. Ver tambin

scan(),

ver Paradis (2005), seccin 3.2,

An Introduction to R: Reading Data from Files

y R Data Import/Export:

Spreadsheet-like Data.
Por ejemplo, podemos cargar el conjunto de datos  pomelos, disponible en el sitio web del taller.
Para hacerlo, creamos un marco de datos llamado pomelos aplicando la funcin

read.table()

leer los datos de su ubicacin actual:

>pomelos<-read.table(file="http://www.cricyt.edu.ar/interactio/
cursos/r_intro/datos/pomelos.csv",sep=",",header=TRUE)

2.3. Guardado de datos en un archivo externo


Puede utilizarse la funcin

write.table().

Ver Paradis (2005), seccin 3.3, pg. 13.

para

Taller de Introduccin a R

2.4. Vericacin de los datos


names(), summary(), str(), class().

Funciones

Ver Bolker (2007), cap. 4.3, p. 8.

Por ejemplo, para ver los nombres de las variables almacenadas en el marco de datos pomelos,
escribimos:

>names(pomelos)
Para obtener informacin sobre los atributos de los objetos (largo, dimensiones, clase), pueden usarse las funciones

Card .

length(), dim(), dimnames(), nrow(), ncol(), class(), unclass(). Ver R Reference

2.5. Seleccin y manipulacin de datos


2.5.1. Indexacin de vectores y matrices.
Los elementos de vectores, matrices y marcos de datos pueden extraerse y manipularse trabajando
con los ndices de los elementos, indicados con corchetes despus del nombre del objeto (ver

Card ).

R Reference

Algunos ejemplos con vectores:

x[n]

indica el elemento n del vector x.

x[-n]

indica todos los elementos de x excepto n.

x[1:n]

indica los primeros n elementos.

x[-(1:n)]

indica los elementos de x a partir de n+1.

Cuando se trabaja con matrices o marcos de datos, deben especicarse los elementos de cada dimensin
del objeto separados por comas:

y[m,]

indica la la m y todas las columnas de la matriz y.

y[-m,n]

indica todas las las de y excepto m y la columna n.

y[,1:n]

indica todas las las y las primeras n columnas de y.

Finalmente, para los marcos de datos pueden seleccionarse columnas (variables) especcas usando el
operador

$:

por ejemplo,

pomelos$GP

selecciona la variable GP del marco de datos pomelos.

2.5.2. Seleccin de subconjuntos


Puede utilizarse la indexacin para seleccionar las de una matriz que cumplan con una condicin
lgica. Por ejemplo:

y[a>0,]

selecciona las las que contengan valores de la columna a mayores a 0.

La indexacin no funciona para marcos de datos; en este caso puede utilizarse la funcin

subset().

Por ejemplo, podemos aplicar esta funcin para seleccionar los datos para el ao 2002 del marco de
datos pomelos (ver seccin 2.2):

>pomelos.2002 <- subset(pomelos,anio==2002)


Para ms informacin sobre la funcin subset(), ver R Documentation, Base Package: subset.

2.5.3. Combinacin de matrices y marcos de datos


Para combinar matrices y vectores pueden utilizarse las funciones

cbind()

rbind()

(R Docu-

mentation, Base Package: cbind). Sin embargo, si se quieren combinar vectores de un marco de datos,
es mejor usar la funcin

data.frame().

Por ejemplo, para crear un marco de datos conteniendo solo

las columnas planta y fset de pomelos, escribimos lo siguiente:

>pomelos.pl.fset <- data.frame(pomelos$planta,pomelos$fset)


Una sintaxis ms simple para lograr el mismo objetivo es utilizar la funcin
aplicar funciones a un marco de datos:

>pomelos.pl.fset <- with(pomelos,data.frame(planta,fset))


4

with(),

que permite

Taller de Introduccin a R

2.5.4. Operadores
R tiene una serie de operadores. Excepto por la sintaxis, no hay diferencia entre los operadores y
otras funciones. Ver

R Language Denition. 3.1.4. Operators .

2.5.5. Funciones para generacin de datos y modicacin de datos preexistentes


R posee muchas otras funciones para la generacin de datos y la modicacin de datos preexistentes.
Ver

R Reference Card .
c(a,b,c,...):

Concatena los elementos

a, b, c, ... para formar un vector.

seq(from=a,to=b,by=c): Genera una secuencia de nmeros desde a

c.

rep(x,v):

Repite el elemento

array(data=x,dim=d):
dimensin

d.

un nmero

cbind(a,b,...):
round(x,n):
sort(x):

con incrementos de

de veces.

Crea una matriz con los datos de

Crea un factor con los elementos del vector

rbind(a,b,...),:

Crea un conjunto de datos (array) con los datos del elemento

matrix(data=x,nrow=r,ncol=c):
factor(x):

hasta

Crea una matriz con los vectores o matrices

Redondea los elementos del vector o matriz

con

las y

columnas.

x.
a, b, ... como las.

Crea una matriz con los vectores o matrices

Ordena los elementos de un vector

a, b, ... como columnas.

xan

cifras decimales.

en forma ascendente. Usar

rev(sort(x))

para

ordenarlos en forma descendente.


order(y): Ordena las las y/o columnas de una matriz o marco de datos

cumsum(x):
x[i].

Crea un vector a partir de

en el que el elemento

y.

es la suma desde

x[1]

hasta

which(c): Devuelve los ndices de un objeto que cumplan con la condicin lgica. Por ejemplo,
which(x==3)con devuelve los ndices de los elementos del vector o matriz x que sean iguales a 3.
table(a,b,...): Hace una tabla interpretando los elementos de los vectores, matrices o listas a,

b, ..., interpretndolos como factores o listas.

sample(x,n,replace=FALSE): Remuestrea al azar sin reemplazo n


replace=TRUE remuestrea con reemplazo.
runif(n,min=x,max=y):

elementos en el vector

x. Con

Genera un vector o matriz de dimensin

a partir de una distribucin

Genera un vector o matriz de dimensin

a partir de una distribucin

uniforme.

rnorm(n,mean=m,sd=s):
normal.

rpois(n,lambda): Genera un vector o matriz de dimensin n a partir de una distribucin Poisson.


Algunos ejemplos:
Generar un vector con

>a <- c(1,2,3,4)


>a
>[1] 1 2 3 4
Generar un vector con

c():

seq():
5

Taller de Introduccin a R

>b <- seq(from=10,to=40,by=10)


Combinar a y b en un marco de datos con

>c <- data.frame(a,b)

data.frame():

Crear una matrix combinando a y b como columnas:

>d <- cbind(a,b)


Crear una matriz de ceros con

>e <- array(0,dim=c(2,4))

array():

2.5.6. Operaciones con matrices


Adems de los operadores mencionados ms arriba (ver seccin 2.5.4), R ofrece varias funciones
para realizar operaciones con matrices. Ver An Introduction to R. 5.7. Matrix Facilities. Ejemplos:

t(x):

Transpone la matriz

x.

diag(x): Si x es un vector, genera una matrix diagonal con x en la diagonal. Si x es una matriz,
extrae la diagonal de

x.

x,

rowSums(x):

Suma las las de

colSums(x):

Suma las columnas de

solve(x):

Invierte la matriz

x.

x.

2.6. Funciones matemticas y estadsticas simples


R posee una extensa biblioteca de funciones que permiten hacer operaciones matemticas y estadsticas simples. Aqu mencionamos solo algunas (ver Paradis (2005), seccin 3.5.7, pg. 25. para ms
informacin):

log(x), log10(x), exp(x), sin(x), cos(x), tan(x), sqrt(x), sum(x), prod(x), max(x), min(x),
which.max(x), which.min(x), mean(x), median(x), range(x), var(x).
quantile(x): Devuelve los quantiles (0, 0.25, 0.50, 0.75, 100) pero puedo pedir otros: quantile(x,
probs=0.30).
cor(x,y):

Correlacin entre dos vectores de igual longitud

x e y. Puede seleccionarse el tipo de

correlacin (Pearson, Spearman, etc.).

2.7. Qu hacer con los datos faltantes (NAs)


Pueden utilizarse las funciones

na.fail(), na.omit(), na.exlcude()

mentation, Stats Package: Handling Missing Values in Objects .

na.pass().

Ver

R Docu-

Ver tambin opcin na.rm=TRUE para funciones estadsticas bsicas como mean(), colSums(),
etc., y sum(is.na(x)) para saber cuntos datos con NA hay; Bolker (2007), p. 10.

2.8. Ejercicios
Ejercicio 1
a. Abra el archivo pomelos.csv
b.

Cuntas variables hay y de qu tipo son las variables?

c.

Reclasique la primer variable (ao) como factor.

d.

Calcule el promedio y el desvo de las variables gp, tp y fset.

e.

Cul es el rango de variacin de la variable fset?

Taller de Introduccin a R

f.
g.

Cul es el valor mnimo de la variable gp?


Ordene la matriz en orden ascendente de los valores de la variable tp.

Ejercicio 2
a. Genere una variable aleatoria con distribucin normal de 100 elementos. (Ayudita: puede usarse la
funcin

rnorm()

para generar datos aleatorios a partir de una distribucin normal.)

b.

Genere un factor con 3 niveles.

c.

Cree un marco de datos (data frame) que contenga la variable aleatoria y el factor.

d.

Genere un vector multiplicando por 3 a la variable aletoria y dividindola por su desviacin estndar.

e.

Guarde la tabla y brala en una planilla de clculo (MS Excel, Gnumeric, OpenOce Calc).

Referencias
Bolker, B., 2007. Ecological Models and Data in R. Enviado a Princeton University Press.
Paradis, E., 2005. R para Principiantes.

También podría gustarte