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

Estructura del dataset del proyecto

7/35
Recursos
  • summary: funci贸n que nos va a mostrar un resumen del dataset que le mandemos.
  • transform: funci贸n para modificar los valores de un dataset.

Aportes 75

Preguntas 25

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Estrictamente hablando es una mejor aproximaci贸n usar como factor de conversi贸n entre kilogramos y libras, el siguiente:

1 kg = 2.20462262 lb

Ya que 1 lb = 0.45359237 kg

NIST, Instituto Nacional de Est谩ndares y Tecnolog铆a de los Estados Unidos, recomienda la siguiente aproximaci贸n:

1 kg = 2.20 lb

https://www.nist.gov/pml/weights-and-measures/approximate-conversions-metric-us-customary-measures

che en la intro al lenguaje creo que deber铆an haber explicado un poco mas sobre sus formalidades, tipo鈥 si es imperativo o declarativo (por ejemplo, la asignaci贸n 鈥<-鈥 me hace acordar a prolog que es declarativo), si esta orientado a un paradigma en particular (porque esas funciones como 鈥渁s.logical鈥 me dan a entender que 鈥渓ogical鈥 es un atributo del objeto 鈥渁s鈥, lo que me lleva a creer que sus ra铆ces est谩n sedimentadas en un paradigma de objetos), etc鈥 Un buen programador, o en este caso ingeniero en datos, deber铆a tener claro con lo que est谩 trabajando, no solo para darle utilidad, sino tambi茅n para poder en un futuro extender las funcionalidades en caso de necesitarlo.

str(): muestra la estructura del dataset
summary(): muestra el resumen del dataset
transform(): permite modificar los valores de un dataset
as.logical(dataset$variable): te permite cambiar el tipo de dato de un dataset a booleano

yo convert铆 el peso de kilos a libras modificando la variable mtcars$wt, as铆:

mtcars$wt <- (mtcars$wt*1000)/2

al hacer el summary s铆 hizo el cambio. Ser谩 que afect贸 en algo m谩s, o simplemente es otra forma de hacerlo?

Pongan heading 鈥淪I鈥 al importar los datos y asi tener los mismas observaciones y variables

En realidad para hacer la conversi贸n a kilogramos deber铆a ser con estos datos:
1lb = 0.453592 kg1kg = 2.204623 lb

mtcars.new <- transform(mtcars, wt = wt * 1000 / 2.204623)

mtcars.new <- transform(mtcars, wt = wt * 1000 * 0.453592)

Siguiendo ejemplo de la clase pasada hice la transformaci贸n del wt asi:
mtcars$wt = (mtcars$wt*1000)/2 y tuve el mismo resultado. Hay alguna diferencia con esta forma mtcars.new <- transform(mtcars,wt=wt*1000/2)
?

Es la primera vez que uso RStudio, entonces me preguntaba c贸mo hacer comentarios en cada l铆nea, por si alguien se pregunta lo mismo:

# Mi Comentario 2
/*
Comentario 1
Comentario 2
Comentario 3
*/

Fuente:

Al importar el dataser a mi me paso que la opcion de headers esta desactivada por defecto, lo que convierte todos los valore sen factors, unicamente hay que ponerla en true y listo.

Al ver la estructura de datos de orangeec, me sale que todas las variables son de tipo 鈥渇actor鈥 pero no deber铆a salir as铆鈥mport茅 los datos como indicaron la primera vez y sigue el problema, porque sale as铆?

$ V10: Factor w/ 18 levels 鈥38.2鈥,鈥42.1鈥,鈥: 18 17 4 12 10 11 6 14 13 5 鈥
$ V11: Factor w/ 18 levels 鈥22.1鈥,鈥22.7鈥,鈥: 18 14 2 4 15 16 12 13 7 6 鈥
$ V12: Factor w/ 18 levels 鈥% pop 25-54鈥,鈥: 1 8 3 5 17 16 15 18 9 6 鈥
$ V13: Factor w/ 14 levels 鈥2.8鈥,鈥3.2鈥,鈥3.5鈥,鈥: 14 10 13 12 10 7 6 11 8 3 鈥

Si no les sale los nombres de los modelos de carros como en el video de la clase, es porque el tipo de datos de la variable model no esta en tipo"factor", y tienen que cambiarlo.

Hola,
Porque cuando ejecuto la instrucci贸n str(Orangec) el resultado que me arroja para todo es 鈥淔actor鈥 osea el resultado que arroja no es parecido al que muestras.
lo que observo es que cuando importo el dataset orangeec, le coloca a cada columna (v1, v2, v3鈥 hasta v13) y no directamente los nombres de las columnas del dataset (Country, GDP PC鈥)
Resultado que arroja:

str(orangeec)
鈥榙ata.frame鈥: 18 obs. of 13 variables:
$ V1 : Factor w/ 18 levels 鈥淎rgentina鈥,鈥淏elize鈥,鈥: 8 1 2 3 4 5 6 7 9 10 鈥
$ V2 : Factor w/ 18 levels 鈥11500鈥,鈥13300鈥,鈥: 18 7 15 13 4 9 3 5 1 16 鈥
$ V3 : Factor w/ 18 levels 鈥102.3鈥,鈥1149000鈥,鈥: 18 16 4 12 5 8 11 13 1 9 鈥
$ V4 : Factor w/ 18 levels 鈥0.8鈥,鈥1鈥,鈥1.5鈥,鈥: 18 10 1 13 2 3 4 12 8 6 鈥
$ V5 : Factor w/ 18 levels 鈥50鈥,鈥50.8鈥,鈥54.5鈥,鈥: 18 7 9 1 15 12 8 16 5 13 鈥
$ V6 : Factor w/ 12 levels 鈥溾,鈥1鈥,鈥1.5鈥,鈥2鈥,鈥: 12 8 1 1 6 5 7 4 4 1 鈥
$ V7 : Factor w/ 16 levels 鈥0.4鈥,鈥0.9鈥,鈥1鈥,鈥: 16 8 4 7 9 6 12 5 1 3 鈥

Incre铆ble que con solo un comando como summary te puedes ahorrar una buena cantidad de querys de SQL

驴Se crea un nuevo dataset llamado mtcars.new? o que es lo que pasa, ya que no me quedo muy claro eso.

Otra forma en la que podemos hacer la transformaci贸n sin tener que hacer la operaci贸n en la funci贸n transform() es creando una nueva variable que contenga los valores de esta columna, como se hace en la clase antes de usar la funci贸n, en mi caso lo hice de esta forma:

wt_kg = (mtcars$wt * 1000) / 2

mtcars.new = transform(mtcars, wt = wt_kg)

Nota: Esta funci贸n recibe unicamente dos parametros:

  1. _data: Objeto donde se va a realizar la transformar (en este caso el dataset 鈥榤tcars鈥)
  2. tag: Estos son los argumentos que vamos a transformar, se toman de la forma 鈥榯ag = value鈥 (en este caso la columna 鈥榳t鈥)

Recomiendo esta p谩gina que contiene la documentaci贸nd de R, incluso tiene su propia consola y ejemplos comunitarios:

Tenia una duda respecto a la exportaci贸n de los datos pero fue resulta al encontrar que se deb铆a habilitar la opci贸n 鈥淗eading鈥 para visualizarlo igual al v铆deo.

Hola como puedo saber en que unidad de medida esta cada dato de cada columna, ejemplo si una es porcentaje y otra es un numero decimal de otro tipo. ?

Excelente clase.

`summary(mtcars)

wt <- (mtcars$wt*1000)/2

wt

mtcars.new <- transform(mtcars,wt=wt*1000/2)

mtcars.new

summary(mtcars.new)````

Tengo una consulta. Prob茅 una alternativa para hacer el cambio de la estructura de la variable wt. Estar铆a correcta?

`mtcars2 <- mtcars

mtcars2$wt <- (mtcars2$wt*1000)/2

summary(mtcars2)`

Aclaraci贸n:

Notemos que en el dataframe esta descrito que la variable 鈥渨t鈥 esta por miles de libras

La raz贸n de multiplicar por 1,000 es debido a que en el dataset los valores del peso (wt) vienen por defecto en notaci贸n cient铆fica: en lugar de decir que pesa 1,200.00 kg, corremos el punto tres veces hacia la izquierda dejando un n煤mero decimal multiplicado por 10 elevado por la cantidad de veces que corrimos el punto: 1.2 * 10^3 kg. Y as铆 tenemos un valor en notaci贸n cient铆fica. La funci贸n de esto es convertir n煤meros grandes en n煤meros resumidos con pocas cifras. Entonces para el viceversa, en este caso, multiplicamos el 1.2 por 10^3 (lo cual es igual a 1,000).

Si quieren agregar comentarios agregen numeral 鈥#鈥 y luego lo que quieran comentar, Espero que les sirva.

Para quienes no les sali贸 el mismo resultado al momento de ejecutar el summary, el problema se debe a que normalmente importamos las variables de texto como tipo character, pero en R es mejor trabajar con factor, que es el tipo de variable aplicado a datos categ贸ricos.

Por supuesto solo es necesario hacer una transformaci贸n sencilla de la variable. Pero cuando un dataset tiene demasiadas variables y no se puede estar haciendo la transformaci贸n de una en una, podemos aplicar el siguiente c贸digo:

dataframe_nombre <- as.data.frame(unclass(dataframe_nombre), stringsAsFactors = TRUE)

Espero les sea 煤til.

Para cambiar la primera fila como encabezados, usar la siguiente funci贸n: names(orangeec) <- as.matrix(orangeec[1, ]) orangeec <- orangeec[-1, ]

17 obs. of 13 variables. Todas Num茅ricas.

Por si se preguntan el por qu茅 de usar como asignador un <- u no un =, tal como en otros lenguajes de programaci贸n. Todo viene de una herencia de S, la cual se hizo muy popular. Pero, en principio cada uno de los elementos de asignaci贸n cumple un rol diferente, acorde al sistema de trabajo que se use sobre el ambiente en R. Una forma de verlo es acorde a la sintaxis propia del lenguaje (?Syntax), donde se ve que el signo de asignador tiene mayor prevalencia sobre el signo de igualdad, dando que no se puedan ejecutar funciones como

median(x = 1:10)

pero si funciones como

median(x <- 1:10)

lo anterior se debe a que en R se trabajan varios entornos de trabajo, por lo que el asignador <- es general a todos los entornos, mientras que el = no lo es, siendo prioritario 煤nicamente en el entorno propio de las funciones (subexpresiones) . Por esto se prefiere usar el asignador <- sobre =.

Pero, en caso que sean de los que prefieren el operador = como asignador, les recomiendo el uso del paquete formatR, con el cual pueden enmascarar ese problema de equivalencia, principalmente en funciones de tipo tidy*

Hola a todos!
Orangecc tiene 17 observaciones y 13 variables, en su estructura inicial se evidencia 1 variable tipo Character que corresponde a los pa铆ses, un integer que es GDO.PC y el resto son num茅ricas.

Se encontraron 18 obs. of 13 variables

Al usar la libreria dplyr se cuenta con la funcion mutate para hacer lo mismo que transform

Se encontraron 19 observaciones y 13 variables en el dataset de econom铆a naranja

Hola! cuando busco el archivo en Git Hub de mtcars, no se encuentra a la fecha de hoy, Mayo de 2020. Podr铆an por favor subirlo o compartirlo para hacer el ejercicio con los mismos datos?

Supongo que el uso de la funci贸n 鈥渢ransform鈥 puede caer entre las buenas pr谩cticas, pero soy m谩s pr谩ctico y simplemente obtuve el mismo resultado haciendo.

mtcars$wt <- (mtcars$wt*1000)/2

驴Porque multiplica por 1000 y luego divide en 2, no es lo mismo que solo multiplicar por 500?

# Funci贸n para ver el resumen del dataframe
summary( 鈥渘omDataFrameSinComillas鈥 )

Ejemplo de clase:

summary( mtcars )
# Ajustar variable wt de (LIBRAS - KILOS)
wt <- (mtcars$wt*1000/2)
wt

# Hacer que los cambios se reflejen en el data frame
mtcars.new <- transform(mtcars,wt=wt*1000/2)
mtcars.new
#Comprobar cambios en dataFrame
summary(mtcars.new)

Ac谩 arranca lo m谩s entretenido jaja

Tuve que corregir el heading importando el dataset orangeec y ahora si aparece correcta la estructura 17 obs. of 13 variables

No entiendo muy bien como funciona el .new o cual es su funcion, alguien podria explicarme?

Mi pregunta es la siguiente, en algunos ejemplos para leer un atributo del dataset se utiliza la siguiente sintaxis mtcars**$wt, sin embargo en el ejemplo de la transformaci贸n se utiliza el punto mtcars.**new

驴Cual es la diferencia?

pregunta, cuando miras el resumen de (mtcars) y haces enfasis en wt y dices que esta en libras y que es mejor cambiarlo a kilos, como te das cuenta que ese dato esta en libraas???

una preguntita鈥 en estructura del data set se hace mtcars.new, es eso algun comando o es que solo se hizo una tabla nueva?

Alguien sabe porque cuando hago la asignaci贸n de variables wt me imprimi lo siguiente, algo diferente al resultado de la profesora

<> wt
 [1] 1310.0 1437.5 1160.0 1607.5 1720.0 1730.0 1785.0 1595.0 1575.0 1720.0 1720.0 2035.0 1865.0 1890.0 2625.0 2712.0
[17] 2672.5 1100.0  807.5  917.5 1232.5 1760.0 1717.5 1920.0 1922.5  967.5 1070.0  756.5 1585.0 1385.0 1785.0 1390.0
> >

鈥榙ata.frame鈥: 17 obs. of 13 variables:

驴Entonces se crea un nuevo dataset llamado mtcars.new? No queda claro esto.

me gusto como se puede transformar los valores de las columnas.

Los cuartiles serian el promedio justo en la mitad y el promedio de arriba de la mitad y abajo de la mitad

La conversi贸n exacta es dividir entre 2.2046

wt <- (mtcars$wt * 1000)*0.453592

mtcars.new <- transform(mtcars, wt=wt10000.453592)

![](

Importante tener en cuenta la compresi贸n de los datos, as铆 comunicamos nuestros datos

Estoy usando la versi贸n 4.0.2 de R, cuando importo los datasets, habilito dos opciones:

  1. Heading para que se importen correctamente las cabeceras
  2. String as Factors, de otra forma los factos aparecen como chr
1 Kg = 2,2 l

Cuando hago la transformaci贸n y ejecuto me sale un error como objeto no encontrado

mtcars.new <- transform(mtcards,wt = wt * 1000 / 2)
mtcars.new

mtcars.new <- transform(mtcards,wt = wt * 1000 / 2)
Error in transform(mtcards, wt = wt * 1000/2) :
objeto 鈥榤tcards鈥 no encontrado
mtcars.new
Error: objeto 鈥榤tcars.new鈥 no encontrado

me ayudan?

Por lo general los problemas me ha dado por equivacaciones en la escritura correcta de las variables.

Gracias a los comentarios se ha solucionado todas ellas!!

Hola,
Que comando puedo usar para ir agregando comentarios en la hoja sobre la que estamos trabajando?

Excelente clase.

tambien se puede transformar columnas con el codigo:

mtcars$wt<-mtcars$wt*(1000/2)

Tengo una duda con respecto a que no me aparecen los encabezados o titulos de columna a la hora de ejecutar la consulta str(orangeecc) y el summary(orangeecc).

Por que puede pasar esto?

No entiendo lo de la variable categ贸rica en country, a mi me sale asi
鈥檇ata.frame鈥: 17 obs. of 13 variables:
$ Country : chr 鈥淎rgentina鈥 鈥淏elize鈥 鈥淏olivia鈥 鈥淏razil鈥 鈥

No me aparece as铆 , no por paises o marcas de carros

Resumen

orangeec: 18 obs, 13 var. todos typo character (chr).

![](
porque me sale asi?

17 obs. of 13 variables

# Exploramos tipos de datos
str(orangeec)

#Summary / el Describe de pandas
summary(orangeec)

# Exploramos el 2do dataset
summary(mtcars)

# convirtiendo wt en kg
wt <- (mtcars$wt*1000)/2
wt

# Guardamos un nuevo dataset
mtcars.new <- transform(mtcars,wt=wt*1000/2)
mtcars.new

summary(mtcars.new)
  Country       GDP.PC       GDP.US.bill         GDP.Growth..  

Argentina: 1 Min. : 5600 Min. : 13.7 Min. :0.800
Belize : 1 1st Qu.: 8300 1st Qu.: 37.1 1st Qu.:2.000
Bolivia : 1 Median :13300 Median : 75.7 Median :2.800
Brazil : 1 Mean :14053 Mean : 188693.0 Mean :2.959
Chile : 1 3rd Qu.:19900 3rd Qu.: 309.2 3rd Qu.:4.200
Colombia : 1 Max. :25400 Max. :2055000.0 Max. :5.400
(Other) :11
Services鈥DP Creat.Ind鈥DP Inflation Unemployment
Min. :50.00 Min. :1.000 Min. : 0.400 Min. : 2.300
1st Qu.:56.90 1st Qu.:2.000 1st Qu.: 1.600 1st Qu.: 5.500
Median :62.20 Median :2.600 Median : 3.400 Median : 6.700
Mean :62.64 Mean :3.291 Mean : 4.365 Mean : 6.794
3rd Qu.:64.90 3rd Qu.:3.950 3rd Qu.: 4.300 3rd Qu.: 8.100
Max. :82.00 Max. :7.400 Max. :25.700 Max. :11.800
NA鈥檚 :6
X鈥op.below.poverty.line Internet.penetration鈥opulation Median.age
Min. : 4.20 Min. :38.20 Min. :22.10
1st Qu.:21.70 1st Qu.:57.70 1st Qu.:25.70
Median :25.70 Median :69.70 Median :28.20
Mean :27.65 Mean :68.42 Mean :28.28
3rd Qu.:32.70 3rd Qu.:79.90 3rd Qu.:31.30
Max. :59.30 Max. :93.10 Max. :35.00

X鈥op.25.54 Education.invest鈥DP
Min. :34.12 Min. :2.800
1st Qu.:39.23 1st Qu.:4.400
Median :40.19 Median :5.000
Mean :39.88 Mean :5.082
3rd Qu.:41.08 3rd Qu.:5.900
Max. :44.03 Max. :7.400

Otra forma de importar es 鈥淚mport Dataset鈥

Es una buena pr谩ctica que vayan comentando su c贸digo y limpiando su environment de forma que si necesitas compartirlo con alguien lo pueda comprender con solo abrir el documento y ver las relaciones entre cada elemento. As铆 tambi茅n se aseguran de que todo tenga un uso en el c贸digo, ahorrando espacio y mejorando el rendimiento

Dividirlo entre 2, o entre 2.20 si cambia mucho los kilos del peso del carro, la primera observaci贸n tiene en el primer caso 1310 kilos mientras en que en segundo tiene 1190

str(orangeec)

summary(orangeec)

summary(mtcars)

wt <- (mtcars$wt*1000)/2

wt

mtcars.new <- transform(mtcars,wt=wt*1000/2)

summary(mtcars.new)

Hola al poner summary(orangeec) en country o models me sale length: 17, class character, mode character, por que razon es?

Forma 1:
wt <- ((mtcars$wt * 1000) / 2 )
wt
mtcars$wt <- wt

Forma 2:
mtcars.new <- transform(mtcars, wt=wt*1000/2)

Que diferencia hay entre las dos opciones, yo lo hice de la 1 y me funcion贸 igual, pero no s茅 si est茅 bien