- Estadística descriptiva o exploratoria
- Organización de la información
- Bases de datos
- Modelos
- Matriz de datos
- Importar datos en R
- Valores separados por comas
csv
- Texto plano
txt
- Excel
xlsx
- Valores separados por comas
- Exportar datos en R
2017
csv
txt
xlsx
tidyr
y dplyr
tidyr
y dplyr
Tradicionalmente se ha entendido como un conjunto de herramientas, formado por coeficientes y técnicas, que tratan de resumir la información contenida en un conjunto de datos.
Se constituye como parte fundamental de cualquier análisis estadístico complejo, en el que se empiezan a tomar decisiones que afectarían el problema de interés.
Proporciona información sobre la estructura de la población que se estudia, indicando, por ejemplo, si ésta es simétrica, si realmente se trata de una única población o hay una superposición de poblaciones, detección de valores atípicos, etc.
Los datos constituyen la materia prima de la Estadística, logrando establecer distintas clasificaciones en función de la forma en que éstos vengan dados.
Se obtienen datos al realizar cualquier tipo de prueba, experimento, valoración, medición, observación.
Representación informática (o conjunto estructurado de datos) pertenecientes a un mismo contexto y almacenados sistemáticamente.
Un modelo de datos es una serie de conceptos que puede utilizarse para describir un conjunto de datos y las operaciones para manipularlos. Algunos de los modelos de datos son:
- Base de datos jerarquica - Base de datos relacional - Base de datos de red - Base de datos entidad - relación - Base de datos multidimensional - Base de datos orientada a objetos
Al conjunto de individuos físicos considerados en un análisis se le denomina Colectivo o Población.
También se utilizarán esos mismos términos para referirse a la(s) característica(s) de esos individuos que son objeto de estudio.
Matriz de datos:
Los datos son organizados en una matriz de \(n*p\) donde cada fila representa a un individuo o registro y las columnas a las características observadas.
# Formato "csv" denPoblac <- read.csv(file = "DenPobla05_10.csv", header = TRUE, sep = ",", dec = ".") # Formato "csv2" huevos <- read.csv2(file = "Huevos.csv", header = TRUE, sep = ";", dec = ",") # Formato "txt" olimpicos <- read.table(file = "ColOlimpicos.txt", header = TRUE, sep = ",", dec = ".")
# Formato "csv" write.csv(denPoblac, file = "DensidadPoblacional.csv") # Formato "csv2" write.csv2(olimpicos, file = "ProdHuevos.csv") # Formato "txt" write.table(olimpicos, file = "Olimpicos.txt")
library(readxl) library(xlsx)
## Loading required package: rJava
## Loading required package: xlsxjars
# Formato "xlsx" (Instalar previamente biblioteca "readxl") salarios <- read_xlsx("Salarios.xlsx") # Formato "xlsx" (Instalar previamente biblioteca "xlsx") write.xlsx(salarios, "Salarios2.xlsx")
reshape2:
facilita la transformación de marcos de datos (data.frame) y matrices.
plyr
: manipulación de datos.
dplyr:
implementa una sintaxis en cadena (%>%
) que da lugar a un código mucho más fácil de leer y entender que la sintaxis anidada habitual.
tidyr:
manipulación de datos más fácil y eficiente.
head(denPoblac, n = 5) #Retorna los primeros 5 registros de la base de datos
## Country.code Country.name X2010 X2009 X2008 X2007 X2006 X2005 ## 1 ABW ARUBA 564428 563433 563022.00 562328 560167 555728 ## 2 AFG AFGHANISTAN 43549 42491 41455.00 40407 39306 38125 ## 3 AGO ANGOLA 15681 15181 14.69 14208 13734 13271 ## 4 AIA ANGUILLA 151297 149132 146868.00 144451 141791 138868 ## 5 ALB ALBANIA 109578 109614 109803.00 110137 110602 111177
names(denPoblac) #Retorna el nombre de las variables (columnas)
## [1] "Country.code" "Country.name" "X2010" "X2009" ## [5] "X2008" "X2007" "X2006" "X2005"
tail(denPoblac, n = 5) #Retorna los últimos 5 registros de la base de datos
## Country.code Country.name X2010 X2009 X2008 X2007 X2006 X2005 ## 226 WSM SAMOA 65711 65243 64798 64373.00 63961 63556.00 ## 227 YEM YEMEN 43114 42104 41108 40.12 39134 38146.00 ## 228 ZAF SOUTH AFRICA 42138 41677 41168 40623.00 40064 39504.00 ## 229 ZMB ZAMBIA 17561 17041 16551 16.09 15654 15.24 ## 230 ZWE ZIMBABWE 33466 32984 32716 32604.00 32563 32528.00
str(denPoblac) #Retorna la estructura de un objeto R
## 'data.frame': 230 obs. of 8 variables: ## $ Country.code: Factor w/ 230 levels "ABW","AFG","AGO",..: 1 2 3 4 5 6 7 8 9 10 ... ## $ Country.name: Factor w/ 230 levels "AFGHANISTAN",..: 11 1 6 7 2 5 216 9 10 4 ... ## $ X2010 : num 564428 43549 15681 151297 109578 ... ## $ X2009 : num 563433 42491 15181 149132 109614 ... ## $ X2008 : num 563022 41455 14.7 146868 109803 ... ## $ X2007 : num 562328 40407 14208 144451 110137 ... ## $ X2006 : num 560167 39306 13734 141791 110602 ... ## $ X2005 : num 555728 38125 13271 138868 111177 ...
dim(denPoblac) #Retorna la dimensión del marco de datos
## [1] 230 8
length(denPoblac) #Retorna la longitud del marco de datos
## [1] 8
class(denPoblac) #Retorna la clase atómica de "denPoblac"
## [1] "data.frame"
class(denPoblac$Country.name) #Retorna la clase atómica de "Country.name"
## [1] "factor"
summary(denPoblac) #Retorna un resumen numérico del conjunto de datos
## Country.code Country.name X2010 X2009 ## ABW : 1 AFGHANISTAN : 1 Min. : 4 Min. : 3 ## AFG : 1 ALBANIA : 1 1st Qu.: 15729 1st Qu.: 16244 ## AGO : 1 ALGERIA : 1 Median : 68354 Median : 68003 ## AIA : 1 AMERICAN SAMOA: 1 Mean : 380407 Mean : 416609 ## ALB : 1 ANDORRA : 1 3rd Qu.: 181872 3rd Qu.: 173882 ## AND : 1 ANGOLA : 1 Max. :24728188 Max. :24371812 ## (Other):224 (Other) :224 ## X2008 X2007 X2006 ## Min. : 3 Min. : 6 Min. : 4 ## 1st Qu.: 18338 1st Qu.: 15206 1st Qu.: 14563 ## Median : 72714 Median : 65206 Median : 64342 ## Mean : 410848 Mean : 374120 Mean : 399178 ## 3rd Qu.: 187676 3rd Qu.: 163087 3rd Qu.: 180998 ## Max. :23950336 Max. :23498658 Max. :23066443 ## ## X2005 ## Min. : 8 ## 1st Qu.: 19266 ## Median : 69124 ## Mean : 391460 ## 3rd Qu.: 176174 ## Max. :22689933 ##
mean(denPoblac$X2010) #Retorna la media
## [1] 380406.8
median(denPoblac$X2010) #Retorna la mediana
## [1] 68353.5
min(denPoblac$X2010) #Retorna el valor mínimo
## [1] 3.52
max(denPoblac$X2010) #Retorna el valor máximo
## [1] 24728188
range(denPoblac$X2010) #Retorna el rango
## [1] 3.52 24728188.00
quantile(denPoblac$X2010) #Retorna los cuantiles
## 0% 25% 50% 75% 100% ## 3.52 15729.25 68353.50 181872.00 24728188.00
sd(denPoblac$X2010) #Retorna la desviación estándar
## [1] 2168787
var(denPoblac$X2010) #Retorna la varianza
## [1] 4.703637e+12
tidyr
Usos de la biblioteca tidyr
:
gather():
pasar de formato ancho a largo.spread():
pasar de formato largo a ancho.Verbos útiles de la biblioteca dplyr
:
select():
selecciona columnas.filter():
selecciona filas.arrange():
reordena filas.mutate():
crea o modifcia columnas.group_by():
operaciones por grupo.summarise():
resumen de datos.tidyr - dplyr
names(denPoblac) <- c("CodPaís","País", "2010", "2009", "2008", "2007", "2006", "2005") names(denPoblac)
## [1] "CodPaís" "País" "2010" "2009" "2008" "2007" "2006" ## [8] "2005"
head(denPoblac, n = 4)
## CodPaís País 2010 2009 2008 2007 2006 2005 ## 1 ABW ARUBA 564428 563433 563022.00 562328 560167 555728 ## 2 AFG AFGHANISTAN 43549 42491 41455.00 40407 39306 38125 ## 3 AGO ANGOLA 15681 15181 14.69 14208 13734 13271 ## 4 AIA ANGUILLA 151297 149132 146868.00 144451 141791 138868
dim(denPoblac)
## [1] 230 8
gather()
#Pasar a formato largo denPoblacLargo <- denPoblac %>% gather(key = Año, value = Densidad, -c(CodPaís:País)) head(denPoblacLargo, n = 5)
## CodPaís País Año Densidad ## 1 ABW ARUBA 2010 564428 ## 2 AFG AFGHANISTAN 2010 43549 ## 3 AGO ANGOLA 2010 15681 ## 4 AIA ANGUILLA 2010 151297 ## 5 ALB ALBANIA 2010 109578
dim(denPoblacLargo)
## [1] 1380 4
spread()
#Pasar a formato ancho de nuevo denPoblacAncho <- denPoblacLargo %>% spread(key = Año, value = Densidad) head(denPoblacAncho, n = 5)
## CodPaís País 2005 2006 2007 2008 2009 2010 ## 1 ABW ARUBA 555728 560167 562328 563022.00 563433 564428 ## 2 AFG AFGHANISTAN 38125 39306 40407 41455.00 42491 43549 ## 3 AGO ANGOLA 13271 13734 14208 14.69 15181 15681 ## 4 AIA ANGUILLA 138868 141791 144451 146868.00 149132 151297 ## 5 ALB ALBANIA 111177 110602 110137 109803.00 109614 109578
dim(denPoblacAncho)
## [1] 230 8
select()
denPoblacSelect <- select(denPoblac, 1:3) denPoblacSelect2 <- select(denPoblac, CodPaís:País) denPoblacSelect3 <- select(denPoblac, contains(c("P"))) head(denPoblacSelect, n = 1)
## CodPaís País 2010 ## 1 ABW ARUBA 564428
head(denPoblacSelect2, n = 1)
## CodPaís País ## 1 ABW ARUBA
head(denPoblacSelect3, n = 1)
## CodPaís País ## 1 ABW ARUBA
filter()
denPoblacLargo2 <- denPoblacLargo %>% filter(País == "COLOMBIA") denPoblacLargo3 <- denPoblacLargo %>% filter(País == c("COLOMBIA", "ECUADOR"))
head(denPoblacLargo2, n = 6)
## CodPaís País Año Densidad ## 1 COL COLOMBIA 2010 40.78 ## 2 COL COLOMBIA 2009 40216.00 ## 3 COL COLOMBIA 2008 39646.00 ## 4 COL COLOMBIA 2007 39071.00 ## 5 COL COLOMBIA 2006 38494.00 ## 6 COL COLOMBIA 2005 37917.00
arrange()
denPoblacLargo4 <- denPoblacLargo %>% arrange(Densidad) denPoblacLargo5 <- denPoblacLargo %>% arrange(-Densidad) denPoblacLargo6 <- denPoblacLargo %>% arrange(desc(País))
head(denPoblacLargo4, n = 3)
## CodPaís País Año Densidad ## 1 NAM NAMIBIA 2009 2.60 ## 2 LBY LIBYA 2008 3.34 ## 3 LBY LIBYA 2009 3.39
head(denPoblacLargo5, n = 3)
## CodPaís País Año Densidad ## 1 MCO MONACO 2010 24728188 ## 2 MCO MONACO 2009 24371812 ## 3 MCO MONACO 2008 23950336
mutate()
denPoblacLargo7 <- denPoblacLargo %>% mutate(Promedio = mean(Densidad)) denPoblacLargo8 <- denPoblacLargo %>% mutate(Suma = sum(Densidad))
head(denPoblacLargo7, n = 3)
## CodPaís País Año Densidad Promedio ## 1 ABW ARUBA 2010 564428 395437 ## 2 AFG AFGHANISTAN 2010 43549 395437 ## 3 AGO ANGOLA 2010 15681 395437
head(denPoblacLargo8, n = 3)
## CodPaís País Año Densidad Suma ## 1 ABW ARUBA 2010 564428 545703107 ## 2 AFG AFGHANISTAN 2010 43549 545703107 ## 3 AGO ANGOLA 2010 15681 545703107
group_by() - summarise()
denPoblacLargo9 <- denPoblacLargo %>% group_by(País) %>% summarise(Promedio = mean(Densidad)) denPoblacLargo10 <- denPoblacLargo %>% group_by(Año) %>% summarise(Promedio = mean(Densidad)) %>% arrange(desc(Promedio)) denPoblacLargo11 <- denPoblacLargo %>% group_by(Año) %>% summarise(Promedio = mean(Densidad), desvEst = sd(Densidad))
denPoblacLargoF <- denPoblacLargo %>% filter(Densidad/1e3 < 3e2) boxplot(denPoblacLargoF$Densidad/1e3 ~ denPoblacLargoF$Año, col = rainbow(6), xlab = "Año", ylab = "Densidad poblacional (en miles)", main = "Población en miles por kilometro cuadrado entre 2005 y 2010")
ggplot(denPoblacLargoF, aes(Densidad/1e3, fill = Año, colour = Año)) + geom_density(alpha=0.2, lwd=0.9) + xlab("Densidad poblacional (en miles)") + ylab("Densidad Estadística") + labs(title = "Población en miles por kilometro cuadrado entre 2005 y 2010")
ggplot(denPoblacLargo10, aes(Año, Promedio/1e3)) + geom_bar(stat = "identity") + xlab("Año") + ylab("Densidad poblacional (en miles)") + labs(title = "Población promedio en miles por kilometro cuadrado entre 2005 y 2010")