Análisis básicos con R
Continuamos elaborando algunos análisis básicos empleano R, en el contexto del análisis estratégico. En esta oportunidad practicamos la elaboración de algunos gráficos básicos.Para ello hemos utilizado data sobre disponibilidad de alimentos, obtenida del INE, e información sobre disputados a la Asamblea Nacional venezolana en el periodo anterior obtenida de Wikipedia.
Recordemos que para crear un vector y una matrix en R procedemos de la siguiente forma:
# crea un vector
a <- c(1, 2, 3, 4, 5, 6, 7, 8)
a
## [1] 1 2 3 4 5 6 7 8
# crea una matriz que se rellena por columna
A <- matrix(a, nrow = 2, ncol = 4, byrow = FALSE)
A
## [,1] [,2] [,3] [,4]
## [1,] 1 3 5 7
## [2,] 2 4 6 8
# crea una matriz con u codigo simplificado
A <- matrix(a, 2, 4)
# transponemos la matriz
t(A)
## [,1] [,2]
## [1,] 1 2
## [2,] 3 4
## [3,] 5 6
## [4,] 7 8
Adquisición de la data en hojas tipo Excel en zonas en las que la coma se emplea como separador decimal (y por tanto los valores de la tabla se separan con punto y coma)
d1 <- rea.csv2("~/disponibilidad.cvs", header = T) #evita que usemos:
# read.csv('~/disponibilidad.csv', sep=',', dec=';')
Revisión de la data
Exploramos la data para ver cuántos casos y cuantas variable tiene la data:
dim(d1)
## [1] 11 3
# se puee obtener en forma separada:
nrow(d1)
## [1] 11
ncol(d1)
## [1] 3
La data tiene once casos y tres variables. Ahora podemos investigar qué tipo de variables tenemos, y si lo deseamos, podemos reasignar la modalidad y ordenar la data siguiendo algún criterio:
# para conocer la clasificacion de las variables
str(d1)
## 'data.frame': 11 obs. of 3 variables:
## $ años : int 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 ...
## $ calorias : int 2267 2163 2202 2127 2254 2361 2120 2279 2460 2355 ...
## $ proteinas: num 60.4 59.6 64.9 61.8 66.4 68.1 63.1 67.9 69 66.9 ...
# cambiar el tipo de variable asignado por R
id$proteina <- as.factor(id$proteina)
# ordenar
d1$calorias <- ordered(d1$calorias, levels = c())
Podemos acceder a valores individuales dentro de la data, a filas o a columnas, para ello:
# para acceder a toda la columna 3
d1[, 3]
## [1] 60.4 59.6 64.9 61.8 66.4 68.1 63.1 67.9 69.0 66.9 71.1
# equivale a
d1$proteinas
## [1] 60.4 59.6 64.9 61.8 66.4 68.1 63.1 67.9 69.0 66.9 71.1
# acceder a la segunda variable del caso 1
d1[1, 2]
## [1] 2267
# información de toda la fila 3
d1[3, ]
## años calorias proteinas
## 3 1998 2202 64.9
# acceder a los 4 primeros casos
d1[1:4, ] #ofrece informacion desde la celda 1 hasta la celda 4, incluyendo las columnas
## años calorias proteinas
## 1 1996 2267 60.4
## 2 1997 2163 59.6
## 3 1998 2202 64.9
## 4 1999 2127 61.8
# visualizamos los 4 primeros registros
head(d1, 4)
## años calorias proteinas
## 1 1996 2267 60.4
## 2 1997 2163 59.6
## 3 1998 2202 64.9
## 4 1999 2127 61.8
# visualizamos los ultimos 4 registros
tail(d1, 4)
## años calorias proteinas
## 8 2003 2279 67.9
## 9 2004 2460 69.0
## 10 2005 2355 66.9
## 11 2006 2468 71.1
d1[d1$años < 2000, ] # de la base de datos y de la variable años, toda la data cuyo año es menot a 2000
## años calorias proteinas
## 1 1996 2267 60.4
## 2 1997 2163 59.6
## 3 1998 2202 64.9
## 4 1999 2127 61.8
Para cambiar un valor dentro de un data.frame
# queremos cambiar el valor de la tercera celda de la columna precio
d1$calorias[3] <- 2420
Obtenemos algunas medidas de posición:
summary(d1[, 2:3])
## calorias proteinas
## Min. :2120 Min. :59.6
## 1st Qu.:2208 1st Qu.:62.5
## Median :2279 Median :66.4
## Mean :2298 Mean :65.4
## 3rd Qu.:2390 3rd Qu.:68.0
## Max. :2468 Max. :71.1
Elaboración de gráficos
Podemos elaborar un gráfico para observar la relación entre proteinas y calorias en los años analizados. Creamos el título principal usando main(), los títulos de los ejes con xlab(), ylab() respectivamente
plot(d1$proteinas, d1$calorias, main = "Venezuela. Consumo protéico y calorias, 1996-2006",
xlab = "consumo de proteina", ylab = "calorias", pch = 20)
grid()
Tenemos otra base de datos con informacion sobre diputados y partidos políticos en la Asamblea, en el pasado periodo. Exploremos su contenido y practiquemos cómo crear algunos gráficos básicos en R:
str(as)
## 'data.frame': 163 obs. of 5 variables:
## $ diputado : Factor w/ 162 levels " Adel El Zabayar Samara ",..: 32 93 24 34 38 60 63 105 153 19 ...
## $ estado : Factor w/ 25 levels "Amazona","Anzoátegui",..: 1 1 2 2 2 2 2 2 2 3 ...
## $ partido : Factor w/ 6 levels "Independiente",..: 4 4 4 4 4 4 4 4 4 4 ...
## $ siglas : Factor w/ 6 levels "Independiente",..: 5 5 5 5 5 5 5 5 5 5 ...
## $ comentarios: Factor w/ 21 levels " Abre Brecha ",..: 20 19 14 14 14 14 14 14 18 14 ...
barplot(sort(table(as$partido)), las = 2, names.arg = c("independientes", "mov. ecol",
"pcv", "ppt", "upp", "psuv"), border = "white", ylim = c(0, 140))
grid()
barplot(table(as$partido, as$estado), las = 2, col = rainbow(6), border = "NA",
ylim = c(0, 20))
grid()
legend("topleft", c("independientes", "mov. ecol", "pcv", "psuv", "ppt", "upp"),
col = rainbow(6), pch = 15, bty = "n")
No hay comentarios.:
Publicar un comentario