1º Establezco el directorio donde quiero trabajar (pongo uno que no delate mi verdadera identidad)
setwd("C://Users")
2º Descargo el fichero indicando la dirección web y la ruta al fichero de destino.
download.file("http://gauss.inf.um.es/datos/tiendas.csv", paste(getwd(), "tiendas.csv"))
3º Compruebo que se ha creado un fichero con extensión .csv con el mismo nombre.
list.files(pattern = ".csv")
## [1] "normal_tissue.csv"
## [2] "normal_tissue.csv.zip"
## [3] "notas-de-la-clase (1).csv"
## [4] "notas-de-la-clase.csv"
## [5] "rna_tissue.csv.zip"
## [6] "Seminal_plasma_All_proteins.csv.txt"
## [7] "Sperm_cells_All_proteins.csv.txt"
## [8] "tiendas.csv"
tiendCamp <- read.table("tiendas.csv", header = T, sep = ";", dec = ".")
tiendCamp <- read.table("http://gauss.inf.um.es/datos/tiendas.csv", header = T, sep = ";", dec = ".")
La diferencia es que no se descarga el fichero en el ordenador
head(tiendCamp)
## precio peso altura marca uso estaciones capacidad.person.
## 1 349.95 960 96 coleman mochilero primavera 2
## 2 449.95 1450 107 coleman mochilero primavera 3
## 3 159.95 1700 102 kelty mochilero primavera 2
## 4 359.95 2160 107 coleman mochilero primavera 3
## 5 149.00 2210 107 rei mochilero primavera 2
## 6 399.95 1530 107 coleman mochilero primavera 2
Muestra las cabecera y las 6 primeras filas del data.frame.
dim(tiendCamp)
## [1] 90 7
Muestra el número de observaciones (filas) y de variables (columnas) del data.frame.
str(tiendCamp)
## 'data.frame': 90 obs. of 7 variables:
## $ precio : num 350 450 160 360 149 ...
## $ peso : num 960 1450 1700 2160 2210 1530 2690 1840 3200 850 ...
## $ altura : int 96 107 102 107 107 107 117 114 122 97 ...
## $ marca : Factor w/ 8 levels "coleman","kelty",..: 1 1 2 1 8 1 3 1 8 1 ...
## $ uso : Factor w/ 3 levels "alpinismo","caravana",..: 3 3 3 3 3 3 3 3 3 3 ...
## $ estaciones : Factor w/ 3 levels "otonho","primavera",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ capacidad.person.: int 2 3 2 3 2 2 3 4 4 1 ...
Muestra el número de observaciones y de variables. Además permite conocer qué clases de variables tenemos y cómo acceder a ellas ($ en este caso).
apply(tiendCamp[, 1:3], 2, summary)
## precio peso altura
## Min. 99.5 850 90.0
## 1st Qu. 261.5 1855 102.0
## Median 344.5 2405 112.0
## Mean 349.2 3395 125.8
## 3rd Qu. 400.0 4756 151.5
## Max. 700.0 9554 203.0
Como podemos observar, hay un amplio abanico para elegir en cuanto a:
a) El precio: oscila entre 99.5 y 700, dando la sensación de que está distribuido de forma homogénea, ya que la media y la varianza están próximas la una de la otra.
b) El peso: varía entre los 850 y los 9554, siendo la media de peso 2405, mientras que la mediana es de 3395, lo que podría sugerir que hay algunas tiendas mucho más ligeras que el resto.
c) La altura: oscila entre 90 y 203. La media y la varianza están muy cerca la una de la otra y más bien próximas al primer cuartil, lo que sugiere que la mayor parte de tiendas son relativamente bajas.
for(i in 1:3){
v <- tiendCamp[,i]
v_name <- colnames(tiendCamp)[i]
hist(v, freq = F, main = paste("Histograma de", v_name), xlab = v_name)
curve(dnorm(x, mean(v), sd(v)), min(v), max(v), add = T)
}
He empleado un for para evitar repetir código con cada variable cuantitativa. Dentro del for:
1º Asigno a la variable ‘v’ la columna correspondiente a la variable cuantitativa que deseo representar.
2º Asigno a la variable ‘v_name’ el nombre de la columna correspondiente, que sería lo mismo que asignarle el nombre de la variable cuantitativa.
3º Represento un histograma de densidades usando ‘freq = F’.
4º Dibujo la curva normal correspondiente y la añado al histograma de densidades.
a) Etiquetar los ejes con nombres adecuados.
b) Poner un título representativo.
c) Rango de la variable peso entre 0 y 10000.
d) Rango de la variable altura entre 80 y 220.
e) Pinta los puntos por colores según la variable uso.
f) Utiliza distintos símbolos en función de la capacidad de la tienda.
g) Busca en la ayuda de la función par() cómo cambiar el tamaño y color del título. Modifícalos a tu gusto.
plot(tiendCamp$altura ~ tiendCamp$peso,
xlab = "Peso", ylab = "Altura",
main = "Peso vs Altura de las tiendas de campaña",
xlim = c(0, 10000),
ylim = c(80, 220),
col = tiendCamp$uso,
pch = tiendCamp$capacidad.person.,
par(col.main = "red", cex.main = 2))
Cada línea dentro del plot incluye la resolución de cada apartado. Para el apartado f coloreo el título en rojo y duplico su tamaño por defecto.