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.

A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

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 68

Preguntas 20

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta 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)

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.

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)
?

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 鈥

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 鈥

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:

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.

驴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)`

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).

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)

![](
porque me sale asi?

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