Sie sind auf Seite 1von 16

ALGUNAS INSTRUCCIONES BASICAS EN EL LENGUAJE R

Presionando el respectivo cono del programa R:


o directamente por el inicio y en el submen de
programas se puede ejecutar el programa. Aparece la siguiente informacin:
R : Copyright 2003, The R Development Core Team
Version 1.6.2 (2003-01-10)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type `license()' or `licence()' for distribution details.
R is a collaborative project with many contributors.
Type `contributors()' for more information.
Type `demo()' for some demos, `help()' for on-line help, or
`help.start()' for a HTML browser interface to help.
Type `q()' to quit R.
>
> q()
> ls()
> rm()
<-

prompt
para terminar una sesin en R
Muestra todos los objetos creados previamente en R y que fueron guardados en una sesin
pasada.
Borra los objetos indicados en parntesis y separados por comas.
Signo de asignacin. Lo que est al lado derecho se asigna al lado izquierdo.

En el paquete R las maysculas son diferentes a las minsculas. Es decir Mat, mat, MAT, son objetos
diferentes en R.
En R tenemos dos maneras de ejecutar comandos: Directamente en la ventana de comandos o leyendo un
archivo de comandos previamente copiados en un archivo de texto.
Suponga que las siguientes instrucciones se escribieron previamente
en un archivo de texto. Suponga que la ruta del archivo es:
c:/comandos.txt. En este archivo estn las instrucciones:
Para leer estas instrucciones en R usamos la instruccin source:
> source(c:/comandos.txt )
En
Parntesis
se
especifica la ruta del archivo
> ls()
Para ver los objetos creados

Otra forma es por el men que aparece en la parte superior de la


ventana del R.
Aparece una ventana donde se pide el archivo donde estn los
comandos. Al presionar aceptar aparece:
> source("C:/comandos.txt")

Funciones de lectura de Datos


En R se tienen diversos comandos para lectura de datos en formatos conocidos u otros. Algunos son:
scan ( )
read.table ( )
read.fwf ( )

Lectura de datos sin ninguna estructura particular


Lectura de bases de datos o tablas
Lectura de datos con formato fijo

La entrada o lectura de los datos puede hacerse directamente en el teclado o leyendo de un archivo externo.
1. Desde un archivo externo
Suponga que se tiene informacin acerca del
Estrato e Ingreso de un grupo de hombres y
informacin
se
encuentra
en
el
a:/METODOS/datos1.txt . Para leer los datos
escriben los siguientes comandos:

Sexo, edad,
mujeres. La
archivo:

desde R se

> dat <- scan(a:/METODOS/datos1.txt,


what=list( ,1,1,1), skip=1)
> dat
En el objeto dat queda guardada la informacin del archivo
datos1.txt, pero los nombres de la columnas se pierden.
La opcin what, indica las variables alfanumricas y
numricas. Las primeras son identificadas en la opcin list
con el smbolo . Las numricas con el nmero 1.
La opcin skip=1, se puede sustituir por skip=T, indica que
la primera fila no ser considerada.

Para leer los datos NUMERICOS a una matrz (en este caso de tres columnas),
escribimos:
> mat<-matrix(scan("a:/metodos/datos2.txt", skip=T),ncol=3,
byrow=T)
Read 33 items
> mat
El resultado aparece al lado derecho.

Si los datos aparecen separados por algn otro carcter (una coma, punto y coma, etc.), usamos la opcin
sep= , entre comillas se coloca el smbolo de separacin. Por ejemplo:
> dat1<-scan("a:/metodos/datos1.txt", what=list("", 1,1,1),
skip=T, sep=,)
> dat1<-scan("a:/metodos/datos1.txt", what=list("", 1,1,1),
skip=T, sep=;)

separados por comas


separados por punto y coma

Para acceder a cualquiera de las columnas de dat, se coloca entre corchetes el nmero correspondiente a la
columna:

Otra funcin muy til es read.table, la cual permite leer estructuras ms complejas con menos requisitos.
Por ejemplo, leamos de nuevo los datos del archivo datos1.txt, cuya primera fila contienen los nombres de las
variables. Las instrucciones y el objeto resultante son:
La instruccin header=T indica que la primera fila
contiene los nombres de las variables.
La presentacin del objeto es en forma de tabla.
Para acceder a una columna en particular se
escribe el nombre del objeto y entre corchetes el
nmero de la columna de inters:
> Dat1[1]

muestra la columna 1 de dat1

2. Ingresando datos desde teclado


Se usa la funcin scan pero se omite la opcin
file:
> dat2 <- scan(what=list( , 1,1,1))
1: hom 23 3 200000
2: hom 25 4 150000
3: muj 24 3 120000
4: hom 28 5 230000
5: muj 22 4 140000
6: muj 25 3 100000
7: hom 26 4 135000
8: muj 23 3 125000
9: hom 30 4 220000
10: muj 30 4 180000
11: hom 24 3 170000
12: hom 24 4 185000
13: hom 27 3 135000
14: muj 24 4 200000
15:
Read 14 records

Lectura de datos en Excel


Para leer archivos en formato Excel, primero se deben guardar los datos en formato csv. Luego se utiliza el
comando read.csv
Suponga que los datos anteriores se tienen en un archivo Excel: datos1.xls. Estos se guardan en formato csv:
datos1.csv
> dat1 <- read.csv(file.choose(), header=T, sep=";")
> dat1
sexo edad estrato ingreso
1
hom
23
3 200000
2
hom
25
4 150000
3
muj
24
3 120000
4
hom
28
5 230000
5
muj
22
4 140000
6
muj
25
3 100000
7
hom
26
4 135000
8
muj
23
3 125000
9
hom
30
4 220000
10 muj
30
4 180000
11 hom
24
3 170000
12 hom
24
4 185000
13 hom
27
3 135000
14 muj
24
4 200000

Generacin de datos y vectores.


> x1 <- c(3.6, 2.5, 1.8, 3.2, 4.1, 4.0, 3.7, 2.3, 2.8, 3.5, 4.5)
> x2 <- c(1:10)

> x3 <- c(Pez, Perro, Gato, Mico)

Secuencias de Nmeros
> s1 <- 2:20
> s2 <- 25:5

> s3 <- seq(1,20)

> s4 <- seq(1,5,by =0.2)

> s5 <- seq(1,5,length=10)

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


> s6 <- rep(x4, times=4)

Para guardar objetos creados en R se usa el comando dump:


> dump(c("x1","x2","x3","x4", "s1", "s2", "s3", "s4", "s5", "s6"),
file="a:/metodos/objetos1.txt

Para llamar estos objetos usamos el comando source ( ruta del archivo)
Manipulacin de Datos
Algunos operadores usados en R son:
Operador

+
*
^
/
%/%
%%
|
!
&&

Funcin
Suma
Resta
Multiplicacin
Exponenciacin
Divisin
Divisin Entera
Operador Mdulo
(lgica)
no
Si el primer operando es cierto se
evala el segundo

Lenguaje Vectorizado
> x <- seq(1,10,by=O.8)
> y <- c(1,3,5,7,9,11.13.15)
> z <- x+y

Operador

<
>
<=
>=
==
!=
&
all ()
any ()
||

Funcin
Menor que
Mayor que
Menor o igual
Mayor o igual
Igual
Diferente
y (lgica)
Todos los referenciados
Ninguno de los referenciados
Si el primer operando es falso se
evala el segundo

> z1 <- x-y


> z2 <- 2*x+z-3

> z3 <- 1/x

Subndices
>
>
>
>
>

Primer elemento de x
Elementos 1 a 3
Solo los positivos
Se elimina el primer elemento
Elimina el elemento 1 y 3

x[1]
x[1:3]
x[x>0]
x[-1]
x[-c(1,3)]

Otras funciones
max()
min()
sum()
mean()
var()
median()
quantile(, probs=c() )
prod()
length()
ncol()
nrow()
summary()

Mximo
Mnimo
Suma
Media
Varianza
Mediana
Cuantiles del argumento
Producto de todos los elementos
Longitud del objeto o nmero de elementos
Nmero de columnas del objeto
Nmero de filas del objeto
Estadsticas bsicas

Funciones de redondeo
ceiling(x)
floor(x)
round(x,)
signif(x, digits=)
trunc(x)

Entero ms pequeo mayor que x


Entero ms grande menor que x
Redondea los elementos de x con las cifras especificadas
En notacin cientfica, redondea al nmero de cifras significativas especificadas.
Trunca los elementos de x

Funciones de matrices
> x5 <- seq(3,10, by=0.5)
> x6 <- matriz(x5, ncol=3, byrow=T)
ncol indica el nmero de columnas, byrow indica como se llenar la matriz. byrow=T, indica que se debe llenar
por filas. byrow=F, indica que se llena por columnas

Las operaciones entre matrices utilizan los smbolos usuales hasta ahora mencionados. Las operaciones de
suma, resta, multiplicacin, divisin, exponenciacin, se realizan elemento a elemento.

Otras operaciones especiales entre matrices usan otros argumentos.

> a <- matrix(1:16, ncol=4, byrow=T)


> b <- matrix(5:21, ncol=4, byrow=T)

> c <-a+b
> c1 <-a*b
> c2 <- 2*a-3*b+3

> a%*%b

Producto usual entre matrices

> t(a)

Traza de a

> crossprod(a,b)

Realiza el producto de la transpuesta de a con b: t(a)%*%b


Cuando se usa solo un argumento, realiza t(a)%*%a

> c3 <- c(1,2,3,4,5)


> diag(c3)

> c4 <- matrix(x1, ncol=3, nrow=3, byrow=T)


> det(c4)
Determinante de c4
> c5 <- svd(c4)

Produce la descomposicin en valores singulares de la matriz c4

> c5$d
> c5$u
> diag(c5$d)

Valores propios
Vectores propios
Crea una matriz diagonal cuya diagonal son los elementos de c5$d

> c5$v

Matriz de vectores tales que: c5$u%*%diag(c5$d)%*%t(c5$v)=c4

> c6 <- solve(c4)

Inversa de la matriz c4

> c4%*%c6

Producto de c4 con su inversa es la identidad

> round(c4%*%c6)

> x1
> sort(x1)

Ordena el vector x1

Pegando matrices.
> a

> b

> cbind(a,b)

Esta funcin pega ambas matrices por columnas: primero a y luego b

> rbind(a,b)

Esta funcin pega ambas matrices por filas: primero a y luego b

> mat

> apply(x, Margin, fun,...)

El comando apply permite aplicar una funcin especfica a las filas o


columnas o ambas de un objeto x (matriz o arreglo) y devuelve un vector o
arreglo con los correspondientes resultados. Margin indica si se aplica a
filas o columnas o ambos (1 para filas, 2 para columnas y c(1,2) para
ambas, fun indica la funcin que se desea aplicar a x.

> apply(mat[,c(1,3)], 2, sum)


> round(apply(mat, 2, mean), digits=3)
> round(apply(mat[,c(1,3)], 2, mean), digits=3)

Grficos en R
Considere una base de datos que contiene informacin de 400 persomnas acerca de 10 variables: GENERO
ESTATURA MASA EDAD GASTOM TIEMPO ESTRATO INGRESO TIP_VEH GASERV. Una parte de la base se
muestra a continuacin:
GENERO ESTATURA MASA EDAD GASTOM TIEMPO ESTRATO INGRESO TIP_VEH GASERV
MUJER 168.6 50.7 23.4 394.5 4.4 4 1463.7 BICI 157.8
HOMBRE 169.5 75.6 30.7 494.4 11.4 2 607.5 PUBLI 148.5
HOMBRE 171.2 73.8 29.0 484.5 29.4 4 1462.8 PUBLI 137.4
HOMBRE 155.8 71.8 29.5 512.1 81.3 3 915.9 PUBLI 163.8
HOMBRE 165.6 78.3 30.6 495.0 2.7 1 561.6 CARRO 182.4
MUJER 153.1 50.6 27.8 405.0 8.9 4 1526.1 CARRO 137.1
HOMBRE 185.5 67.2 30.5 502.8 10.9 3 883.2 CARRO 129.3
HOMBRE 160.8 74.5 31.5 495.9 21.1 3 929.4 BICI 153.6
MUJER 159.5 58.5 27.3 396.9 100.5 3 855.9 PUBLI 174.9
MUJER 158.7 57.3 22.5 418.2 1.1 3 905.1 MOTO 155.7
Elaboremos algunos grficos de inters con ayuda de esta base de datos. Primero se lee la base de datos.

> base <- read.table(file.choose(), header=T)


La informacin es guardada en el objeto base . Para ver parte del archive, por ejemplo las primeras 10 filas,

> base[1:10,]
1
2
3
4
5
6
7
8
9
10

GENERO ESTATURA MASA EDAD GASTOM TIEMPO ESTRATO INGRESO TIP_VEH GASERV
MUJER
168.6 50.7 23.4 394.5
4.4
4 1463.7
BICI 157.8
HOMBRE
169.5 75.6 30.7 494.4
11.4
2
607.5
PUBLI 148.5
HOMBRE
171.2 73.8 29.0 484.5
29.4
4 1462.8
PUBLI 137.4
HOMBRE
155.8 71.8 29.5 512.1
81.3
3
915.9
PUBLI 163.8
HOMBRE
165.6 78.3 30.6 495.0
2.7
1
561.6
CARRO 182.4
MUJER
153.1 50.6 27.8 405.0
8.9
4 1526.1
CARRO 137.1
HOMBRE
185.5 67.2 30.5 502.8
10.9
3
883.2
CARRO 129.3
HOMBRE
160.8 74.5 31.5 495.9
21.1
3
929.4
BICI 153.6
MUJER
159.5 58.5 27.3 396.9 100.5
3
855.9
PUBLI 174.9
MUJER
158.7 57.3 22.5 418.2
1.1
3
905.1
MOTO 155.7

Lo primero es identificar el tipo de variables, puesto que los grficos asociados a variables discretas es diferente
al de las variables continuas. En esta base se identifican:
Variables Discretas: No hay
Variables categricas: Gnero, Estrato, Tipo de vehculo
Variables Continuas: Todas las dems.
El anlisis para variables categricas se hace principalmente con el uso de tablas de frecuencias y diagramas de
barras.
La instruccin en R para elaborar tablas de frecuencias es table . Por ejemplo par alas variables Gnero,
Estrato y Tip_veh:

> table(base[,1])
HOMBRE
236

MUJER
164

> table(base[,7])
1
29

2
3
4
72 148 109

5
22

6
20

> table(base[,9])
A_PIE
28

BICI CARRO
45
84

MOTO PUBLI
48
195

Para obtener tablas de frecuencias relativas, se puede dividir por 400.

> table(base[,9])/400
A_PIE
BICI CARRO
MOTO PUBLI
0.0700 0.1125 0.2100 0.1200 0.4875
La instruccin attach permite que el R reconozca los nombres de las variables contenidas en una base de datos
previamente guardada. Por ejemplo

> attach(base)
> table(TIP_VEH)/400
TIP_VEH
A_PIE
BICI CARRO
MOTO PUBLI
0.0700 0.1125 0.2100 0.1200 0.4875
Tablas de doble entrada.
> table(GENERO,ESTRATO)
ESTRATO
GENERO
1 2 3 4 5 6
HOMBRE 18 39 92 61 14 12
MUJER 11 33 56 48 8 8
> table(GENERO,ESTRATO)/400
ESTRATO
GENERO
1
2
3
4
5
6
HOMBRE 0.0450 0.0975 0.2300 0.1525 0.0350 0.0300
MUJER 0.0275 0.0825 0.1400 0.1200 0.0200 0.0200

> table(ESTRATO,TIP_VEH,GENERO)
, , GENERO = HOMBRE
TIP_VEH
ESTRATO A_PIE BICI CARRO MOTO PUBLI
1
2
2
3
1
10
2
3
5
9
2
20
3
7
13
22
14
36
4
0
7
14
10
30
5
1
0
4
1
8
6
1
1
3
1
6
, , GENERO = MUJER
TIP_VEH
ESTRATO A_PIE BICI CARRO MOTO PUBLI
1
1
3
2
2
3
2
4
4
2
3
20
3
4
4
9
7
32
4
3
5
14
3
23
5
0
1
1
2
4
6
2
0
1
2
3
> table(ESTRATO,TIP_VEH,GENERO)/400
, , GENERO = HOMBRE
TIP_VEH
ESTRATO A_PIE
1 0.0050
2 0.0075
3 0.0175
4 0.0000
5 0.0025
6 0.0025

BICI
0.0050
0.0125
0.0325
0.0175
0.0000
0.0025

CARRO
0.0075
0.0225
0.0550
0.0350
0.0100
0.0075

MOTO
0.0025
0.0050
0.0350
0.0250
0.0025
0.0025

PUBLI
0.0250
0.0500
0.0900
0.0750
0.0200
0.0150

CARRO
0.0050
0.0050
0.0225
0.0350
0.0025
0.0025

MOTO
0.0050
0.0075
0.0175
0.0075
0.0050
0.0050

PUBLI
0.0075
0.0500
0.0800
0.0575
0.0100
0.0075

, , GENERO = MUJER
TIP_VEH
ESTRATO A_PIE
1 0.0025
2 0.0100
3 0.0100
4 0.0075
5 0.0000
6 0.0050

BICI
0.0075
0.0100
0.0100
0.0125
0.0025
0.0000

Si se usa esta instruccin para una variable continua, se obtiene un resultado poco til, sobre todo si se tienen
mucha informacin.

En el caso continuo, se suelen calcular medidas descriptivas bsicas, como medias, medianas, varianzas
muestrales, percentiles, etc.

> summary(base[,c(1,2,3,4,5,6,8,9,10)])
GENERO
HOMBRE:236
MUJER :164

ESTATURA
Min.
:140.2
1st Qu.:160.7
Median :167.2
Mean
:167.7
3rd Qu.:174.0
Max.
:199.0

TIEMPO
Min.
: 0.20
1st Qu.: 9.00
Median : 22.45
Mean
: 32.81
3rd Qu.: 45.30
Max.
:299.40

MASA
Min.
:37.80
1st Qu.:55.60
Median :69.15
Mean
:66.70
3rd Qu.:76.60
Max.
:92.50

INGRESO
Min.
: 528.0
1st Qu.: 622.3
Median : 911.7
Mean
:1103.0
3rd Qu.:1500.6
Max.
:2336.4

TIP_VEH
A_PIE: 28
BICI : 45
CARRO: 84
MOTO : 48
PUBLI:195

EDAD
Min.
:16.50
1st Qu.:25.60
Median :28.10
Mean
:28.11
3rd Qu.:30.70
Max.
:41.90

GASTOM
Min.
:368.7
1st Qu.:402.9
Median :489.3
Mean
:458.7
3rd Qu.:501.3
Max.
:523.5

GASERV
Min.
:111.0
1st Qu.:140.7
Median :150.2
Mean
:150.3
3rd Qu.:160.9
Max.
:200.1

Para calcular percentiles de una variable continua, se usa la instruccin quantile

> quantile(ESTATURA,c(0.05,0.1,0.25,0.5,0.75,0.9,0.95))
5%
10%
25%
50%
75%
90%
95%
151.700 154.860 160.725 167.250 174.025 181.820 185.505
> quantile(ESTATURA,c(0.05,0.1,0.25,0.5,0.75,0.9,0.95), type=1)
5%
10%
25%
50%
75%
90%
95%
151.7 154.5 160.5 167.2 174.0 181.8 185.5
Grficos
Grficos de Barras.
> barplot(ESTRATO)
> barplot(table(ESTRATO))
> barplot(table(ESTRATO), col=c('blue', 'cyan', 'red', 'green', 'white', 'yellow'))
> barplot(table(ESTRATO)/400, col=c('blue', 'cyan', 'red', 'green', 'white',
'yellow'))
Histogramas

Funciones Relacionadas con Distribuciones


Algunas de las siguientes instrucciones permiten calcular valores de una distribucin, probabilidades o
generacin de nmeros aleatorios de una distribucin particular.

Distribucin

Densidad

Uniforme

dunif(x,min=0,max=1,log=FALSE)

Normal

dnorm(x,mean=0,sd=1,log=FALSE)

Binomial
Lognormal
Beta
Geomtrica
Gamma

dbinom(x,size,prob,log=FALSE)
dlnorrn(x, meanlog =0, sdlog = 1, log
= FALSE)
dbeta(x, shape1, shape2, ncp=0, log =
FALSE)
dgeom(x, prob, log = FALSE)

Ji cuadrado

dgamma(x, shape, scale=l, log =


FALSE)
dchisq(x, df, ncp=0, log = FALSE)

Exponencial

dexp(x, rate = 1, log=FALSE)

df(x, df1, df2, log = FALSE)

Hipergeom
T

dhyper(x, m, n, k, log = FALSE)


dt(x, df, log = FALSE)

Poisson

dpois(x, lambda, log = FALSE)

Weibull

dweibull(x, shape, scale = 1, log=


FALSE)
dnbinom(x, size, prob, mu, log =
FALSE)

Binom. Neg.

Funcin Acumulada
punif(q,min=0,max=1, lower.tail
=TRUE,log.p = FALSE)
pnorm(q, mean=0, sd=1, lower.tail =
TRUE, log.p = FALSE)
pbinom(q, size, prob, lower.tail =TRUE,
log.p = FALSE)
plnorrn(q, meanlog=0, sdlog =
1,lower.tail = TRUE, log.p =FALSE)
pbeta(q, shape1, shape2, ncp=0,
lower.tail = TRUE, log.p - FALSE)
pgeom(q, prob, lower.tail = TRUE, log.p
= FALSE)
pgamma(q, shape, scale=l, lower.tail =
TRUE, log.p = FALSE)
pchisq(q, df, ncp=0, lower.tail=TRUE,
log.p=FALSE)
pexp(q, rate = 1, lower.tail=TRUE, log.p
= FALSE)
pf(q, df1, df2, ncp=0,
lower.tail=TRUE,log.p = FALSE)
phyper(q, m, n, k, lower.tail = TRUE,
log.p = FALSE)
pt(q, df, ncp=0, lower.tail = TRUE,
log.p = FALSE)
ppois(q, lambda,lower.tail = TRUE, log.p
= FALSE)
pweibull(q, shape, scale =1, lower.tail
= TRUE, log.p = FALSE)
pnbinom(q, size, prob, mu, lower.tail=
TRUE, log.p = FALSE)

Instrucciones para generar nmeros aleatorios de algunas Distribuciones


Cuanti1es

Distribucin

Nmeros Aleatorios .

Uniforme

qunif(p,min=0,max=l,lower.tail=TRUE,log.p=FALSE)

runif(n,min=0,max=l)

Normal

qnorm(p,mean=0,sd=1,lower.tail=TRUE,log.p=FALSE)

rnorm(n,mean=0,sd=l)

Binomial

qbinom(p,size,prob,lower.tail=TRUE,log.p=FALSE)

rbinom(n,size,prob)

Lognormal

qlnorm(p,meanlog=0,sdlog=1,lower.tail=TRUE,log.p=F)

rlnorm(n,meanlog=0,sdlog=1)

Beta

qbeta(p,shape1,shape2,lower.tail=TRUE,log.p=FALSE)

rbeta(n,shape1,shape2)

qgeom(p,prob,lower.tail=TRUE,log.p=FALSE)

rgeom(n,prob)

qgamma(p,shape,scale=1,lower.tail=TRUE,log.p=FALSE)

rgamma(n,shape,scale=1)

JI cuadrado

qchisq(p,df,ncp=0,lower.tail=TRUE,log.p=FALSE)

rchisq(n,df,ncp=0)

Exponencial

qexp(p,rate=1,lower.tail=TRUE,log.p=FALSE)

rexp(n,rate=1)

qf(p,df1,df2,lower.tail=TRUE,log.p=FALSE)

rf(n,df1,df2)

qhyper(p,m,n,k,lower.tail=TRUE,log.p=FALSE)

rhyper(nn,m,n,k)

qt(p,df,lower.tail=TRUE,log.p=FALSE)

rt(n,df)

Poisson

qpois(p,lambda,lower.tail=TRUE,log.p= FALSE)

pois(n,lambda)

Weibull

weibull(p,shape,sca1e=1,lower.tail=TRUE,log.p=FALSE)

rweibull(n,shape,scale=1)

qnbinom(p,size,prob,mu,lower.tail=TRUE,loq.p=FALSE)

rnbinom(n,size,prob,mu)

Geomtrica
Gamma

Hipergeom
T

Binom.Neg.

Donde:

p:
m:

Es un vector de probabilidades (acumuladas).


Nmero de observaciones, excepto para la Hipergeomtrica, donde nn es el nmero
de observaciones. Si la longitud de n es mayor que 1, la longitud es tomada como el
nmero requerido.

Das könnte Ihnen auch gefallen