Bienvenida e introducción

1

Todo lo que aprenderás sobre el lenguaje R

2

Programación y Data Science

3

R y proyecto economía naranja.

4

Instalando nuestras herramientas

Variables, tipos de datos y estructuras

5

Los primeros cálculos con R y variables

6

Tipos de datos

7

Estructura del dataset del proyecto

8

Vectores

9

Matrices

10

Ejercicios con matrices

11

Operadores para comparar y ubicar datos

12

Factores, listas y echar un vistazo al dataset

EDA: Exploratory data analysis

13

Qué es EDA: Exploratory Data Analysis

14

Gráficas de dispersión e histogramas.

15

Box Plot y su interpretación

16

EDA con dataset proyecto - Gráficas de dispersión.

17

EDA con histogramas.

18

EDA con dataset proyecto - histogramas - ggplot2

19

EDA con box plot- ggplot2

20

EDA con dataset proyecto - box plot- ggplot2 - dplyr

21

EDA con gráficas de dispersión con más de dos variables - ggplot2

22

EDA con dataset proyecto usando gráficas de dispersión con más de dos variables - ggplot2 - plotly

La estadística de los datos

23

Buscando correlaciones con pairs

24

Confirmando correlaciones con la función cor

25

Buscando correlaciones con pairs en dataset proyecto

26

Confirmando correlaciones con la función cor en dataset proyecto.

27

Protegiéndonos de los peligros del promedio.

28

Eliminando los NA's para hacer los cálculos.

29

Estadística y visualización aplicada a análisis de datos de mercadeo.

Ajustando los datos

30

Generando tablas, filtrando y seleccionando datos - dplyr-Parte 1

31

Generando tablas, filtrando y seleccionando datos - dplyr-Parte 2

Mejorando la visualización

32

Viendo más información con facet wrap - Parte 1

33

Viendo más información con facet wrap - Parte 2

Organizar visualizaciones y código con R Markdown

34

Conociendo R Markdown y organizando los hallazgos del análisis en un documento PDF.

Conclusiones Finales

35

Invitación a continuar recorriendo el mundo del data science.

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Viendo más información con facet wrap - Parte 1

32/35
Recursos

Reto: ajusta la variable de peso de mtcars por peso en kilos.

Aportes 70

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Para seleccionar los 4 mas pesados, me parece muy manual ordenarlos y luego escribirlos uno a uno, lo hice así:

# Los ordeno
mtcars_orderby_pesados<-mtcars %>% arrange(desc(peso_en_kilos))
# Hago un filter de los 4 primeros
mas_pesados <- filter(mtcars_orderby_pesados[1:4,])

Por acá dejo mi reto:
Código

Gráfica

##Viendo más información con facet wrap - Parte 1

mtcars %>%
  arrange(desc(Peso_kilo))

Mas_pesados <- mtcars %>%
  filter(model %in%c("Lincoln Continental","Chrysler Imperial",
                     "Cadillac Fleetwood","Merc 450SE"))

Mas_pesados

ggplot(Mas_pesados, aes(x=hp,y=mpg))+
  geom_point()+
  facet_wrap(~model)


ggplot(mtcars, aes(x=cyl, y=mpg, size=Peso))+
  geom_point()+
  facet_wrap(~ am)

##RETO
ggplot(mtcars, aes(x=cyl, y=mpg, size=Peso_kilo))+
  geom_point()+
  facet_wrap(~ am)```

Aquí una forma de guardar los 6 “más pesados” sin tener que escribir los nombres directamente:

test_mas_pesados <- mtcars %>%  arrange(desc(peso_kilos))
mas_pesados <- head(test_mas_pesados)

Despues de correr tantos graficos, me daba este error:

Error in .Call.graphics(C_palette2, .Call(C_palette2, NULL)) : 
  invalid graphics state

Lo resolvi con un:

dev.off()

y luego corren el codigo normal.

El operador pipe %>%

El operador pipeline %>% es útil para concatenar múltiples dplyr operaciones. Obsérvese en el siguiente ejemplo, que cada vez que queremos aplicar mas de una función, la instrucción es una secuencia de llamadas a funciones de forma anidada y que resulta ilegible:

third(second(first(x)))

Este anidamiento no es una forma natural de expresar un secuencia de operaciones. El operador %>% nos permite escribir una secuencia de operaciones de izquierda a derecha:

first(x) %>% second(x) %>% third(x)

Otra forma de obtener los 4 automoviles más pesados:

Mas_pesados <- ( mtcars %>% arrange( desc( mtcars$peso_kilos ) ) ) [1:4,]

Codigo de mi Reto

ggplot(mtcars, aes(x=cyl, y=mpg, size = Peso_kilos))+
geom_point(aes (color= Peso))+
facet_wrap(~am)

No puedo colocar pantallazos

Reto

EXPLICANDO ggplot:
.
ggplot es un paquete
Depende de COMO quieras (y LO QUE quieras) ver en la grafica tipea un comando u otro
.
.
Para la parte estetica aes(x=,y=) pauta las variables que quieres analizar en los ejes x,y. En este caso caballos de fuerza hp y millas por galon mpg de los Mas_pesados:

.
.
Para la figura que veras en la grafica, en este caso es un punto geom_point():

.
.
Para tener varias graficas en una visualizaciòn facet_wrap , en este caso queremos ver por modelo (-model):

AHORA
Para llegar a los + TOP arrange (desc()) con filter(model %in% ©) y que se vean bonitos ggplot:
.
.

1.- Visualiza EN orden la VARIABLE que solicitas; en este caso el orden arrange es descendente desc en el peso de los vehiculos


.
.

2.- Establece el filter de lo visto en el orden arrange ; en este caso de los model Mas_pesados


.
.

3.- Para nuestra comprensiòn en grafica es mejor ¡que viva el ggplot!

Lo hice de esta manera para reducir las columnas

#top de autos mas pesados
#ordenarlos
orden <- mtcars%>%
  arrange(desc(peso_kg))

#filtrar columnas a interés
orden_peso <- subset(orden, select=c(1,2,3,4,5, 15))
orden_peso

#filtrar el top
top5 <- filter(orden_peso[1:4,])
top5

Para obtener los datos de los autos más pesados se puede optar por usar la función slice_max, el cual ordena los datos descendentemente según la variable especificada y obtiene el número de filas requeridas.

Mas_pesados <- slice_max(mtcars, Peso_kilos, n = 4)
Mas_pesados

# Misma función usando operador pipe
Mas_pesados <- mtcars %>% slice_max(Peso_kilos, n = 4)
Mas_pesados

# Reto
ggplot(mtcars, aes(x = cyl, y = mpg, size = Peso_kilos)) + 
  geom_point() +
  facet_wrap(~ am)

Acá les dejo una función que ordena de mayor a menor, según la variable indicada

mtcars %>% 
  slice_max(Peso_kilos, n= 4)

ggplot(mtcars, aes(x=cyl, y = mpg, size= peso_kilos))+
geom_point()+
facet_wrap(~ am)

Aqui tenemos la receta
->

.
.
Y aqui el pastel
->

Relación de 5 variables, cambiando el Peso por Peso_kilos y añadiendo la variable Velocidad_Cuarto_milla

ggplot(mtcars, aes(x = cyl, y = mpg, size = Peso_kilos, color = Velocidad_Cuarto_milla)) +
  geom_point() +
  facet_wrap(~am)

El ejercicio lo hice con varias modificaciones:

Como lo pidió la profe:

ggplot(mtcars, aes(x=cyl, y=mpg, size=Peso_kil))+
geom_point()+
facet_wrap(~ am)

Le puse colores:

ggplot(mtcars, aes(x=cyl, y=mpg, size=Peso_kil))+
geom_point(aes(color=Peso_kil))+
facet_wrap(~ am)

Le puse más colores:

colores <- c(“rojo”, “amarillo”, “azul”, “verde”)

Crear un factor para asignar colores según los niveles de “Peso_kil”

mtcars$Peso_kil <- as.factor(mtcars$Peso_kil)
levels(mtcars$Peso_kil) <- colores

Graficar los puntos con colores según “Peso_kil”

ggplot(mtcars, aes(x = cyl, y = mpg, size = Peso_kil, col = Peso_kil)) +
geom_point() +
facet_wrap(~ am)

Para encontrar los 4 carros mas pesados se puede hacer una busqueda SQL usando la funcion (sqldf):

mas_pesados <- sqldf("SELECT *
            FROM mtcars
            ORDER BY peso_kilos DESC
            LIMIT 4", drv="SQLite")

Reto

ggplot(mtcars2, aes(x = cyl, y = mpg, size = Peso_kilos, color=Peso_kilos)) + 
  geom_point() +
  facet_wrap(~ am) +
  labs(x = "Cilindros",
       y = "Millas por galón",
       title = "Relación Millas por galón, cilindros y peso en kilos") +
  theme(legend.position = "bottom",
        plot.title=element_text(hjust=0.5, size=10, face='bold'),
        panel.background = element_blank(), 
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank() )

ggplot(mtcars, aes(x=cyl, y=mpg, size=Peso_kilos))+
geom_point()+
facet_wrap(~am)

Incluyendo scatter plot interactivo visto anteriormente para visualizar mejor cada uno de los carros:

my_graph = ggplot(mtcars,aes(cyl, mpg, size=Peso, label=model))+
  geom_point()+
  labs(x="Cilindros", y="Millas por galón",
       title="Cilindros y millas por galón según peso y tipo de caja")+
  facet_wrap(~am) + theme(plot.title = element_text(hjust = 0.5)) 
my_graph

p = ggplotly(my_graph)
p

Recopilación de otras 3 formas adicionales de ordenar los 4 más pesados:

#2
mtcars_mas_pesados = mtcars %>%
arrange(desc(Peso_kilos))
Mas_pesados = filter(mtcars_mas_pesados[1:4,])
Mas_pesados

#3
Mas_pesados = mtcars %>%
arrange(desc(Peso_kilos))

Mas_pesados = head(Mas_pesados,n=4)
Mas_pesados

#4
Mas_pesados <- slice_max(mtcars, Peso_kilos, n = 4)
Mas_pesados

ggplot(mtcars, aes(x=cyl, y=mpg, size=Peso_kilos))+
geom_point()+
facet_wrap(~ am)

Dejo el gráfico del reto:
“Relación de Millas por galón y Nro. de Cilindros según Peso en kilos”

Cuando uses el mutate y comparas con el número no olvidar ==, estuve buen rato buscando mi error. Falta de practica 😃

mtcars <- mtcars %>% mutate(caja=if_else(am==0,"Automatico","Manual"))

# Ejemplo usando cinco variables 
ggplot(mtcars, aes(x=cyl, y=mpg))+
  geom_point(aes(color=as.factor(peso), size=peso_kilo)) +
  facet_wrap(~caja) +
  labs(x="Cilindros", 
       y="Millas por galon", 
       title="Cilindros, Millas por Galon segun peso y tipo de caja")

Otra forma:

heavier_ones <- head(mtcars  %>%
                       arrange(desc(wt)))[1:4,]

orangeec <- orangeec %>%
mutate(Crecimiento_GDP = ifelse(GDP.Growth… >=2.5,
“2.5% o mas”,
“menos de 2.5%”))

orangeec <- orangeec %>%
mutate(Anaranjados=ifelse(Creat.Ind…GDP >= 2.5,
“Mas anaranjados”,
“Menos anaranjados”))

#ranking

orangeec %>%
arrange(desc(Creat.Ind…GDP))

TopNaranjas <- orangeec %>%
filter(Country %in% c(“Mexico”,“Panama”,“Argentina”,
“Colombia”,“Brazil”))
TopNaranjas

TopNaranjas %>%
arrange(desc(Creat.Ind…GDP))

#Viendo más información con facet wrap - Parte 1
#Ver carros más pesados

mtcars %>%
arrange(desc(Peso_kilos))

Mas_pesados <- mtcars %>%
filter(model %in% c(“Lincoln Continental”,“Chrysler Imperial”,
“Cadillac Fleetwood”,“Merc 450SE”))

Mas_pesados

ggplot(Mas_pesados, aes(x=hp,y=mpg))+
geom_point()+
facet_wrap(~model)
#RESULTADO: Un cuadrante para cada modelo, Lincoln tiene
#215 caballos, recorre pocas millas por galon. Merc tiene
#180 caballos recorre mucho más mpg

ggplot(mtcars, aes(x=cyl, y=mpg, size=Peso))+
geom_point()+
facet_wrap(~ am)
#RESULTADO:Cuatro var. 1 = Manuales y tenemos 2 con ocho cilindros
#que recorren pocas millas por seleccion. los que más recorren en manual son los livianos
#a diferencia de los automaticos.

##RETO; obtenemos la var de peso por kilos
ggplot(mtcars, aes(x=cyl, y=mpg, size=Peso_kilos))+
geom_point()+
facet_wrap(~ am)

ggplot(mtcars, aes(x=cyl, y=mpg, size=peso_kilos))+
geom_point()+
facet_wrap(~am)

Para el reto además cambié la variable am por vs

#RETO CON VARIABLE PESO KILO

ggplot(mtcars,aes(x=cyl , y=mpg, size=Peso_kilos))+
geom_point(aes(color = Peso))+
facet_wrap(~vs)

![](

#viendo mas informacion con facet wrap

mtcars %>%
  arrange(desc(Peso_Kilos))

Mas_pesados <- mtcars %>%
  filter(model%in% c("Lincoln Continental",
                     "Chrysler Imperial",
                     "Cadillac Fleetwood",
                     "Merc 450SE"))

Mas_pesados

ggplot(Mas_pesados, aes(x=hp,y=mpg))+
  geom_point()+
  facet_wrap(~model)

#4 variabls: cantidad de cilindros, millas por galon, peso y la forma de transmision
ggplot(mtcars, aes(x=cyl,y=mpg, size=Peso))+
  geom_point()+
  facet_wrap(~am)

#Reto

ggplot(mtcars, aes(x=cyl,y=mpg, size=Peso_Kilos))+
  geom_point()+
  facet_wrap(~am)

Reto:

Recuerden tener activo ggplot2. Para eso, antes del código para graficar escriban: library(ggplot2)

los_mas_pesados <- mtcars %>% arrange(desc(peso_en_kilos))

mas_pesados <- filter(los_mas_pesados[1:5,])

5 mas pesados

Reto

Diagrama de dispersión entre cuatro variables (cyl, mpg,am, peso)

ggplot(mtcars, aes(x=cyl, y=mpg, size=Peso_kilos))+
geom_point()+
facet_wrap(~ am)

La verdad no he podido copiar en el cuadro de texto ninguna figura o printscreen, no he hallado mi error, pero dejo el codigo de la figura, le puse color utilizando el peso.

utilizo dev.new(), para generar una venta de visualización exclusiva para las figuras, pero no funciona (o no he encontrado la manera de hacerlo) con las figuras de la paqueteria plotly.

<dev.new()
ggplot(Mtcars,aes(x=cyl, y=mpg, size=weight_kg))+
  geom_point(aes(color=factor(weight)))+
  facet_wrap(~am)>

interesante!

Reto…

ggplot(mtcars, aes(x=cyl, y=mpg, size=Peso_kilos))+
  geom_point()+
  facet_wrap(~am)```

Mi propuesta para seleccionar los 4 más pesados:

Mas_pesados <- (mtcars2 %>% arrange(desc(Peso_kilos)))[1:4,]

Reto:

ggplot(mtcars, aes (x = cyl, y = mpg, size = Peso_Kilos))+
  geom_point(aes(color = Peso))+
  facet_wrap(~am)

Otra forma de filtrar los modelos sin tener que escribir:

mtcars2 <- mtcars %>%
  arrange(desc(Peso_Kg))

carros <- head(mtcars2$model,4)

Mas_pesados2 <- mtcars %>%
  filter(model %in% carros)
Mas_pesados2
ggplot(mtcars,
       aes(x = cyl,
           y = mpg,
           size = Peso_Kilos,
           color = Peso)) +
  geom_point() +
  facet_wrap(~am) +
  labs(x = "Número de cilindros",
       y = "Millas por galón",
       title = "Relación de Millas por galón según el Número de Cilindros y el Peso")
ggplot(mtcars, aes(x=cyl, y = mpg, size= Peso_kilos))+
    geom_point()+
    facet_wrap(~ am)

Adjunto captura y código del reto con variable Peso_kilos:

ggplot(mtcars,aes(x=cyl,y=mpg,shape=factor(Peso),size=Peso_kilos))+
  geom_point((aes(colour = factor(Peso))))+
  facet_wrap(~am)

Reto:


ggplotly(ggplot(mtcars, aes(x =cyl, y = mpg, color = Peso, size = Peso_Kilos))+
  geom_point()+
  facet_wrap(~am)
)

Haciendo interactiva tambien la gráfica.

Creo que es lo que pedía en el reto

ggplot(mtcars, aes(x=cyl, y= mpg, size=peso_kilos, color=peso))+
  geom_point()+
  facet_wrap(~ am)```
ggplot(mtcars, aes(x=cyl, y=mpg, size=Peso_Kilos, color=Peso))+
  geom_point()+
  facet_wrap(~am)```
ggplot(mtcars, aes(x=cyl, y=mpg, size=Peso_Kilos))+
  geom_point()+
  facet_wrap(~am)

Mi aporte al reto

ch <- ggplot(mtcars,aes(x=cyl,y=mpg,size=weight,color=weight_kilos,
                        label=rownames(mtcars$model)))+
  geom_point()+
  facet_wrap(~transmission)+
  labs(x="Miles Per Galon",
       y="Cylinder",
       title = "MPG VS CYL")
p=ggplotly(ch)
p
ggplot(mtcars, aes(x=cyl, y=mpg, size=Peso_kilos))+
   geom_point()+
   facet_wrap(~ am)

Así quedaria el reto.![](

ggplot(mtcars, aes(x=cyl, y=mpg, size=Peso_kilos, color=Peso))+
  geom_point()+
  facet_wrap(~am)

un shortcut de %>% es ctrl+Shift+m

Challenge completed 🤠
Codigo

Resultado

ggplot(mtcars, aes(x=cyl, y=mpg, size=Peso_kilos))+
geom_point(aes(color=peso))+
facet_wrap(~am)

library(dplyr)
mtcars %>% 
  arrange(desc(Peso_kilo))
Mas_pesados <- mtcars %>%
  filter(model %in% c('Lincoln Continental', 'Chrysler Imperial',
                      'Cadillac Fleetwood', 'Merc 450SE'))
Mas_pesados

# 
library(ggplot2)
ggplot(Mas_pesados, aes(x=hp, y = mpg)) +
  geom_point()+
  facet_wrap(~model)

ggplot(mtcars, aes(x=cyl, y = mpg, size = Peso)) +
  geom_point()+
  facet_wrap(~direccion)

ggplot(mtcars, aes(x=cyl, y = mpg, size = Peso_kilo)) +
  geom_point()+
  facet_wrap(~direccion)

Reto
ggplot(mtcars,aes(x=cyl,y=mpg,size=Peso_Kilos))+
geom_point()+
facet_wrap(~am)