Está en la página 1de 43

Taller 1 de R

2021

Notas de clase elaboradas por L.M.González Taller 1 de R 1


R es un lenguaje y un ambiente para cálculos estadísticos, y para
preparación de gráficos de alta calidad.
R ofrece una amplia variedad de técnicas estadísticas.

Notas de clase elaboradas por L.M.González Taller 1 de R 2


R es un lenguaje y un ambiente para cálculos estadísticos, y para
preparación de gráficos de alta calidad.
R ofrece una amplia variedad de técnicas estadísticas.
Un manual en español puede ser bajado de la página web:
cran.r-project.org/doc/contrib/R-intro-1.1.0-espanol.1.pdf

Notas de clase elaboradas por L.M.González Taller 1 de R 2


Usando R

1 Abrir R. Muestra informaciones acerca de la versión y algunas


instrucciones básicas. Para limpiar la pantalla puede usar:
Control + l.
También puede abrir Rstudio.

Notas de clase elaboradas por L.M.González Taller 1 de R 3


Usando R...continuación

1 En la pantalla que aparece se van a escribir las instrucciones del


programa. Tener en cuenta:

Notas de clase elaboradas por L.M.González Taller 1 de R 4


Usando R...continuación

1 En la pantalla que aparece se van a escribir las instrucciones del


programa. Tener en cuenta:
Las instrucciones del programa, también, se pueden escribir en un
procesador de texto independiente de R, por ejemplo, Word, bloc
de notas, WordPad, Ox, etc.

Notas de clase elaboradas por L.M.González Taller 1 de R 4


Usando R...continuación

1 En la pantalla que aparece se van a escribir las instrucciones del


programa. Tener en cuenta:
Las instrucciones del programa, también, se pueden escribir en un
procesador de texto independiente de R, por ejemplo, Word, bloc
de notas, WordPad, Ox, etc.
Para correr el programa:
Si escribe en el script de R, para correr una línea, pararse sobre la
línea y usar Control + r.

Notas de clase elaboradas por L.M.González Taller 1 de R 4


Usando R...continuación

1 En la pantalla que aparece se van a escribir las instrucciones del


programa. Tener en cuenta:
Las instrucciones del programa, también, se pueden escribir en un
procesador de texto independiente de R, por ejemplo, Word, bloc
de notas, WordPad, Ox, etc.
Para correr el programa:
Si escribe en el script de R, para correr una línea, pararse sobre la
línea y usar Control + r.
Si escribe en un procesador de texto independiente, com el bloc de
notas, se copian las instrucciones en la pantalla de R: R Console y
luego se oprime Enter.

Notas de clase elaboradas por L.M.González Taller 1 de R 4


Usando R...continuación

1 En la pantalla que aparece se van a escribir las instrucciones del


programa. Tener en cuenta:
Las instrucciones del programa, también, se pueden escribir en un
procesador de texto independiente de R, por ejemplo, Word, bloc
de notas, WordPad, Ox, etc.
Para correr el programa:
Si escribe en el script de R, para correr una línea, pararse sobre la
línea y usar Control + r.
Si escribe en un procesador de texto independiente, com el bloc de
notas, se copian las instrucciones en la pantalla de R: R Console y
luego se oprime Enter.
R diferencia entre mayúsculas y minúsculas. Por tanto la variable
“Edad” es diferente de la variable “edad”.

Notas de clase elaboradas por L.M.González Taller 1 de R 4


Usando R...continuación

El símbolo“>” indica que R está preparado para recibir


instrucciones.

Notas de clase elaboradas por L.M.González Taller 1 de R 5


Usando R...continuación

El símbolo“>” indica que R está preparado para recibir


instrucciones.
Es recomendable, antes de cualquier otra instrucción, escribir:
remove(list=ls())

Notas de clase elaboradas por L.M.González Taller 1 de R 5


Usando R...continuación

El símbolo“>” indica que R está preparado para recibir


instrucciones.
Es recomendable, antes de cualquier otra instrucción, escribir:
remove(list=ls())

Para ver la lista de archivos y/o bases que están almacenadas en


R, puede usar la instrucción:
ls()

Notas de clase elaboradas por L.M.González Taller 1 de R 5


Usando R...continuación

El símbolo“>” indica que R está preparado para recibir


instrucciones.
Es recomendable, antes de cualquier otra instrucción, escribir:
remove(list=ls())

Para ver la lista de archivos y/o bases que están almacenadas en


R, puede usar la instrucción:
ls()

En caso tal que se desee hacer anotaciones en el programa, se


puede usar el símbolo # antes de la anotación, por ejemplo,
remove(list=ls()) # limpia bases de datos anteriores

Notas de clase elaboradas por L.M.González Taller 1 de R 5


Usando R...continuación

3 Leyendo los datos.


Dieta A: 278 245 269 275 280 281 284 278 280 277
Dieta B: 455 430 415 341 370 459 481 480

Notas de clase elaboradas por L.M.González Taller 1 de R 6


Usando R...continuación

3 Leyendo los datos.


Dieta A: 278 245 269 275 280 281 284 278 280 277
Dieta B: 455 430 415 341 370 459 481 480
Los datos pueden ser incluidos directamente en las instrucciones del
programa o pueden ser importados.

Notas de clase elaboradas por L.M.González Taller 1 de R 6


Usando R...continuación

3 Leyendo los datos.


Dieta A: 278 245 269 275 280 281 284 278 280 277
Dieta B: 455 430 415 341 370 459 481 480
Los datos pueden ser incluidos directamente en las instrucciones del
programa o pueden ser importados.
DietaA=c(278,245,269,275,280,281,284,278,280,277)
DietaB=c(455,430,415,341,370,459,481,480)

Notas de clase elaboradas por L.M.González Taller 1 de R 6


Evaluando algunas estadísticas

4 Algunas operaciones...

Notas de clase elaboradas por L.M.González Taller 1 de R 7


Evaluando algunas estadísticas

4 Algunas operaciones...
Obteniendo en total (suma).
sum(DietaA)
sum(DietaB)
totalA=sum(DietaA)
totalA

Notas de clase elaboradas por L.M.González Taller 1 de R 7


Evaluando algunas estadísticas

4 Algunas operaciones...
Obteniendo en total (suma).
sum(DietaA)
sum(DietaB)
totalA=sum(DietaA)
totalA

Obteniendo el promedio.
mean(DietaA)
mean(DietaB)
promedioB=mean(DietaB)
promedioB

Notas de clase elaboradas por L.M.González Taller 1 de R 7


Evaluando algunas estadísticas...continuación

Obteniendo el mínimo.
min(DietaA)
min(DietaB)
minimoA=min(DietaA)
minimoA

Notas de clase elaboradas por L.M.González Taller 1 de R 8


Evaluando algunas estadísticas...continuación

Obteniendo el mínimo.
min(DietaA)
min(DietaB)
minimoA=min(DietaA)
minimoA

Obteniendo el máximo.
max(DietaA)
max(DietaB)
maximoA=max(DietaA)
maximoA

Notas de clase elaboradas por L.M.González Taller 1 de R 8


Evaluando algunas estadísticas...continuación

Ordenando los datos de menor a mayor.


DietaA[order(DietaA)]
DietaB[order(DietaB)]

Notas de clase elaboradas por L.M.González Taller 1 de R 9


Evaluando algunas estadísticas...continuación

Ordenando los datos de menor a mayor.


DietaA[order(DietaA)]
DietaB[order(DietaB)]

Obteniendo los cuantiles:


quantile(DietaA,0.25, type = 2)
quantile(DietaA,0.50, type = 2)
quantile(DietaA,probs = c(0.25, 0.5, 0.75), type = 2)
quantile(DietaA,0.10, type = 2)
quantile(DietaA,probs = c(0.05, 0.20), type = 2)

R dispone de, al menos, 9 formas diferentes de calcular los percentiles.

Notas de clase elaboradas por L.M.González Taller 1 de R 9


Evaluando algunas estadísticas...continuación

Obteniendo la varianza.
var(DietaA)
var(DietaB)

Notas de clase elaboradas por L.M.González Taller 1 de R 10


Evaluando algunas estadísticas...continuación

Obteniendo la varianza.
var(DietaA)
var(DietaB)

Obteniendo la desviación estándar:


sqrt(var(DietaA))
sqrt(var(DietaB))
sA=sqrt(var(DietaA))
sA

Notas de clase elaboradas por L.M.González Taller 1 de R 10


Evaluando algunas estadísticas...continuación
Obteniendo el rango.
max(DietaA)−min(DietaA)
rangoB=max(DietaB)−min(DietaB)
rangoB
range(DietaB)

Notas de clase elaboradas por L.M.González Taller 1 de R 11


Evaluando algunas estadísticas...continuación
Obteniendo el rango.
max(DietaA)−min(DietaA)
rangoB=max(DietaB)−min(DietaB)
rangoB
range(DietaB)

Obteniendo el coeficiente de variación:


sA=sqrt(var(DietaA))
sB=sqrt(var(DietaB))
CVA=sA/mean(DietaA)*100
CVB=sB/mean(DietaB)*100
CVA
CVB

Notas de clase elaboradas por L.M.González Taller 1 de R 11


Evaluando algunas estadísticas...continuación
Obteniendo el rango.
max(DietaA)−min(DietaA)
rangoB=max(DietaB)−min(DietaB)
rangoB
range(DietaB)

Obteniendo el coeficiente de variación:


sA=sqrt(var(DietaA))
sB=sqrt(var(DietaB))
CVA=sA/mean(DietaA)*100
CVB=sB/mean(DietaB)*100
CVA
CVB

Obteniendo algunas estadísticas resumen.


summary(DietaA)
summary(DietaB)

Notas de clase elaboradas por L.M.González Taller 1 de R 11


Evaluando algunas estadísticas...continuación

library(e1071)
skewness(DietaA) # para el coeficiente de asimetría
skewness(DietaB) # para el coeficiente de asimetría
kurtosis(DietaB) # par el coeficiente de curtosis, pero
# interpretar solo si la simetría es cercana a cero.

Notas de clase elaboradas por L.M.González Taller 1 de R 12


Obteniendo una tabla de distribución de frecuencias

Retomando el ejemplo de los datos del COVID19 y las personas


fallecidas en el Amazonas, se va a importar la base de datos de un
archivo Excel, para lo cual es necesario usar la libraria “readxl”.
library(readxl)
COVIDAm = read_excel("CovidAmazonas14092020.xlsx",sheet=1)
attach(COVIDAm)
head(COVIDAm)
str(COVIDAm)

Antes de importar los datos se debe estar seguro que el directorio


donde se está trabajando sea donde están los datos.

Notas de clase elaboradas por L.M.González Taller 1 de R 13


Obteniendo una tabla de distribución de frecuencias...
continuación

La distribución de frecuencias “a mano” sería:


Edad=COVIDAm$Edad
range(Edad)
minEdad=min(Edad)
maxEdad=max(Edad)
ancho=(maxEdad−minEdad)/5
fronteras = seq(minEdad, maxEdad, by=ancho)
fronteras[6]=95.01

Notas de clase elaboradas por L.M.González Taller 1 de R 14


Obteniendo una tabla de distribución de frecuencias...
continuación

library(agricolae)
histograma1 = graph.freq(COVIDAm$Edad,breaks=fronteras,col="cyan4",
frequency=1,las=2)
print(summary(histograma1),row.names=FALSE)

Notas de clase elaboradas por L.M.González Taller 1 de R 15


Obteniendo una tabla de distribución de frecuencias...
continuación

histograma1 = graph.freq(Edad,breaks=fronteras,col="cyan4",frequency=1,las=2,
xlab="Edad",ylab="Frecuencia absoluta",
main="Histograma de frecuencias absolutas")
histograma2 = graph.freq(Edad,breaks=fronteras,col="darkgoldenrod",frequency=2,
las=1,xlab="Edad",ylab="Frecuencia relativa",
main="Histograma de frecuencias relativas")
ogive.freq(histograma1,col="red",type="b",ylab="Frecuencia relativa acumulada",
xlab="Edad")

Notas de clase elaboradas por L.M.González Taller 1 de R 16


Obteniendo una tabla de distribución de frecuencias...
continuación

histograma1 = graph.freq(Edad,breaks=fronteras,col="cyan4",frequency=1,las=2,
xlab="Edad",ylab="Frecuencia absoluta",
main="Histograma de frecuencias absolutas")
histograma2 = graph.freq(Edad,breaks=fronteras,col="darkgoldenrod",frequency=2,
las=1,xlab="Edad",ylab="Frecuencia relativa",
main="Histograma de frecuencias relativas")
ogive.freq(histograma1,col="red",type="b",ylab="Frecuencia relativa acumulada",
xlab="Edad")

Pero si se desea que la misma función realice la distribución de


frecuencias, sin darle las fronteras, se puede usar:
histograma3 = graph.freq(Edad,col="cyan4",frequency=1,las=2,xlab="Edad",
ylab="Frecuencia absoluta",main="Histograma de frecuencias absolutas")
ogive.freq(histograma3,col="red",type="b",ylab="Frecuencia relativa acumulada",
xlab="Edad")

Notas de clase elaboradas por L.M.González Taller 1 de R 16


Obteniendo un diagrama de cajas o box-plot

boxplot(COVIDAm$Edad)
boxplot(COVIDAm$Edad, horizontal=TRUE)
boxplot(COVIDAm$Edad~COVIDAm$Sexo)

Notas de clase elaboradas por L.M.González Taller 1 de R 17


Importando datos de archivos *.csv

Por otro lado, si el archivo que se desea importar es “*.csv” se usa la


instrucción “read.table”. Por ejemplo considere los microdatos de la
Encuesta de Cultura Política 2019, sección Capital Social. La
descripción de las variables se puede ver en
Descripción de variables - ECP - Capital Social .

library(agricolae)
remove(list=ls())
CapitalSocial=read.table("CapitalSocial.csv",header=TRUE,sep=";")
attach(CapitalSocial)
View(CapitalSocial)
dim(CapitalSocial)

Notas de clase elaboradas por L.M.González Taller 1 de R 18


Importando datos de archivos *.csv

Un histograma para las respuetas a la pregunta 38 (ver formulario):


“Imagínese la siguiente situación: Hoy, de forma inesperada, usted
recibe 400.000 pesos, ¿qué cantidad de este monto donaría usted a
una buena causa?”
histograma3 = graph.freq(CapitalSocial$P2045,col="cyan4",frequency=1,las=2,
xlab="Monto que donaría",ylab="Frecuencia absoluta",

boxplot(CapitalSocial$P2045)
summary(CapitalSocial$P2045)

Notas de clase elaboradas por L.M.González Taller 1 de R 19


Tablas de frecuencias

remove(list=ls())
Estratos=c("Bajo−Bajo","Bajo","Medio−Bajo","Medio","Medio−Alto","Alto")
Estratos=as.factor(Estratos)
Area=c(31687,407611,334162,286215,193156,80611)
tabla=data.frame(Estratos,Area)
tabla1=cbind(tabla,proportions(Area))
tabla1
tabla1=cbind(tabla,FrecRelat=round(proportions(Area),3))
tabla1

Notas de clase elaboradas por L.M.González Taller 1 de R 20


Representación gráfica - Diagramas de barras

barplot(Area,names.arg=Estratos,col="dodgerblue")
barplot(tabla1$FrecRelat,names.arg=Estratos,col="darkorange1")
barplot(tabla1$FrecRelat,names.arg=Estratos,col="dodgerblue1",horiz=TRUE)

Notas de clase elaboradas por L.M.González Taller 1 de R 21


Representación gráfica - Diagrama de pastel

remove(list=ls())
Sector=c("Gobierno general","Sociedades no financieras","Sociedades financieras")
Entidades=c(1935,1800,65)
pie(Entidades,labels=Sector)

Notas de clase elaboradas por L.M.González Taller 1 de R 22


Representación gráfica - Diagrama de pastel...continuación

colores=c("dodgerblue","darkorange1","firebrick2")
pie(Entidades,labels=Sector,col=colores)
Sector=paste(Sector,Entidades)
pie(Entidades,labels=Sector,col=colores)

Notas de clase elaboradas por L.M.González Taller 1 de R 23


Representación gráfica - Gráfico de trazos

library(dygraphs)
remove(list=ls())
Año=c(2012,2013,2014,2015,2016,2017)
Salidas=c(4842811,5422696,5932697,6212334,6430754,7207078)
datos=data.frame(Año,Salidas)
dygraph(datos)
plot(Año,Salidas,type="b")

Notas de clase elaboradas por L.M.González Taller 1 de R 24


Fin sesión.

Notas de clase elaboradas por L.M.González Taller 1 de R 25

También podría gustarte