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

Operadores para comparar y ubicar datos

11/35
Recursos

En R cuentas con los operadores de comparación comunes como == o |, pero además cuentas con el operador:

  • %in% Que sirve para checar si un elemento se encuentra en el dataset

Para hacer una selección de elementos de un vector, matriz o data frame podemos usar la función subset.

Podemos renombrar una variable de nuestro dataset orangeec, para ello debemos tener instalado el paquete plyr. En caso de no tener el paquete instalado solamente corremos en la consola el código install.packages(“plyr”).

Aportes 78

Preguntas 25

Ordenar por:

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

Importante
Para usar ‘rename’ luego de instalar el paquete plyr deben cargarlo:
library(“plyr”)
ó
en el panel de Packages dar check a la casilla de plyr

Al hacer el rename se cambia el nombre solo en la consola, pero no en el dataset. Para que cambie en el dataset, a mí me funcionó:

orangeec <- rename(orangeec,c('Creat.Ind...GDP' = 'AporteEcNja'))```

Recuerden, despues de intalar la libreria “plyr” deben llamarla para que no le vaya a poner problemas

install.packges(plyr)
library(plyr)

Si saben python esto va a ser un paseo por el parque

Para seleccionar multiples columnas dentro del subset pueden usar un contenedor, por ejemplo,

neworangeec <- subset(orangeec,
                      Internet.penetration...population > 80
                      & Education.invest...GDP >= 4.5,
                      select = c(Country,Creat.Ind...GDP))

Les dejo un link con más usos del subset aquí

En mi caso para la instalación del “plyr” me solicitó instalar “Rcpp” y “R tools”. Incluso RStudio da los links de descarga. Luego de instalarlos recien pude instalar el “plyr”. Finalmente tuve que dar check en la ventana de package para poder utilizar el “rename” sin problemas.
![](

Si alguno de los compañeros no les ejecuta la consulta por algún error, intentar de la siguiente manera.

neworangeec <- subset(orangeec, 'Internet penetration % population' > 80
                      & 'Education invest % GDP' >= 4.5,
                      select = 'Creat Ind % GDP')

A T E N C I Ò N
#a esta clase
.
.
< menor que

.
.
>= mayor o igual que

.
.
<= menor o igual que

(es decir Costa Rica, Ecuador, Peru y Uruguay son los paises que menos estan aportando a su PIB desde su economia naranja)
.
.
subset()

(mas del 80% de la poblacion de Argentina, Costa Rica y Paraguay recibe internet y tienen mas del 4.5% de su PIB como inversion en educacion)
.
.
select()

(1.- Argentina, 7.- Costa Rica y 15.- Paraguay tienen una penetracion de internet superior al 80%, con una inversion en educacion de mas del 4.5% de su PIB, aportan a su PIB desde la economia naranja el 3.8%, el 2% y el 4.1% respectivamente)
.
.
rename()

(cambio de “Creat.Ind…GDP” a “AporteEcNja”)

Para hacer un subset que me traiga varias columnas no solo una:

Consulta <- subset(orangeec, Internet.penetration...population > 80 & Education.invest...GDP >=4.5, select = c(Country,Creat.Ind...GDP))

Para la función rename, siempre se puede utilizar alguna opción más consistente. Recomiendo el paquete dplyr, dado que permite integración con otro tipo de data. Pero, el ejemplo usado en clase no es suficiente, es necesario que se almacene el cambio o simplemente no quedará reflejado el cambio fuera de consola. A continuación, en la imagen dejó dos formas de hacerlo, ambas igualmente consistentes.

Es de anotar, que tanto library() como require() sirven para el cargado de librerías, pero require() tiene un plus a la hora de programar con condicionales.

Y sobre la instrucción %>%, es la forma en que se manejan los pipeline en R. Por decirlo de alguna manera, es la forma de hilar los resultados de una función para que sean los ingresos de la siguiente función. En el caso del ejemplo, el data.frame es el insumo para la función rename()

En esta clase les hace falta explicar mejor… En general en el curso les falta explicar tanta notacion de R que para la gente debe ser muy dificil entender algunas cosas que se hace aqui

Operadores para comparar y ubicar datos

En mi caso , cuando intente descargar el paquete de “plyr” me aparecio el siguiente error:

“Please download and install the appropriate version of Rtools before proceeding:”

Me dirigui al URL que me indicaba:
https://cran.rstudio.com/bin/windows/Rtools/rtools40.html

Instale la version del Rtool segun la version de mi windows y segui los pasos que me indicaba la pagina:

1- Crear un file de texto en el archivo documentos con el nombre “.Renviron” con la siguiente linea de texto PATH="${RTOOLS40_HOME}\usr\bin;${PATH}"
2- Reiniciar R y ejecutar la siguiente linea: Sys.which(“make”)
3- Ejecutar la siguiente linea para instalar el paquete: install.packages(“plyr”, type = “source”

Para aquellos como yo que somos nuevos en tec los pasos que me funcionaron a mi para descargar las “plyr” son:

  1. install.packages(‘plyr’) en la consola (aqui instala todo lo que necesita)
  2. al lado derecho en packages lo chuleas (para usarlo)
  3. vuelves a la consola library(‘plyr’) y asi lo cargas
  4. ahora si puedes seguir con las instrucciones de la clase.
    Perdi como dos horas entendiendo eso.

Resumen

Hay otra forma de renombrar:

names(orangeec)[6]<-paste("AporteEcNja")

En R studio hay una pestaña que se llama PACKAGE en el costado inferior derecho ahí también pueden ver si esta instalado el paquete PLYR .

Para cargar el paquete solo deben hacer library(“plyr”)

En mi caso tengo la versión RStudio 4 y para poder instalar Plyr tuve que hacerlo desde la opción de el apartado de Packages y en el menú Install pudes introducir el nombre de la librería y te da las opciones y hay que habilitar el check Install dependencies.![](

Me lanzó error al instalar plyr en Ubuntu. Si usan ubuntu, es posible que no tengan instalado el compilador y por eso les tire el error. Para instalarlo:
sudo apt install make gcc g++ cmake gfortran r-base-dev

(Fuente: https://community.rstudio.com/t/can-not-install-any-package-on-linux/115358/3)

orangeec[orangeec$GDP.PC>=15000,]
[1] V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13
<0 rows> (or 0-length row.names)

COMO PUEDO CORREGIR ESTE ERROR

Por qué debemos usar la coma luego de una instrucción de filtrado? por ejemplo el caso a continuación, y por qué falla si no ponemos la coma?

orangeec[orangeec$GDP.Growth..>=2.9,]

Aqui dejo algo de documentacion sobre subset
Documentacion 🤠

consultita… como pudo poner select para mostrar 2 columnas, por ejemplo la columna de country y otra mas…

Otra forma de hacer el subset() en R, aplicando la instruccion orangeec$("nombre del campo")

final_matrix <- rbind(tiempo_matrix, c(10, 15, 30, 5, 0))

refinal_matrix<- cbind(final_matrix, c(20, 15, 10))

dias <- c("lunes", "martes", "miercoles", "jueves", "viernes", "sabado")
tiempo <- c("tiempo platzi", "tiempo lecturas", "tiempo repaso")
colnames(refinal_matrix)<- dias
rownames(refinal_matrix) <- tiempo
refinal_matrix```

Estoy repitiendo el curso de R con Sonia porque con la Española no entendí nada. Ahora todo tiene sentido. Gracias Sonia!!

Hola muy buenas, ¿Por qué luego de renombrar la columna mediante la función rename y volver a cargar el dataset “orangeec”, este cambio de nombre no se refleja? solo lo veo en la respuesta de ejecución. ¿O debo mandar ese resultado a un nuevo dataset mediante <-?

Si instalaron el paquete “plyr” y la función “rename” no les esta funcionando, intenten usarlo de la siguiente forma: plyr::rename(OrangeEcon,c(“Creat.Ind…GDP”=“AporteEcNja”))

#a mi me corre de esta manera
neworangeec<-subset(orangeec,"Internet penetration % population">80
                    & "Education invest % GDP">=4.5)```

A los que les genere el error:
Warning in install.packages :
unable to access index for repository https://cran.rstudio.com/src/contrib:
cannot open URL ‘https://cran.rstudio.com/src/contrib/PACKAGES

Deben ir a Tools->Global Options->Packages-> desmarcar la opción “Use secure donwload method for HTTP”->Apply->OK

Luego:
install.packages(“Rcpp”)

Luego:
install.packages(“plyr”)

Finalmente:
library(plyr) en consola o en el apartado de packages marcarlo

Este curso esta bastante desactualizado, tiene más de 4 años, y muchos de los comandos descritos ya cambiaron:

> orangeec[orangeec$GDP.PC >= 8,]
Error in `orangeec[orangeec$GDP.PC >= 8, ]`:
! Can't subset rows with `orangeec$GDP.PC >= 8`.
x Logical subscript `orangeec$GDP.PC >= 8` must be size 1 or 17, not 0.
Run `rlang::last_trace()` to see where the error occurred.
Error during wrapup: 'length = 3' in coercion to 'logical(1)'
Lost warning messages
Error: no more error handlers available (recursive errors?); invoking 'abort' restart

La correcta es:

> orangeec[orangeec$`GDP PC` >= 15000,]

Yo intenté emplear la función rename con otra base de datos y me funcionó perfectamente.

De pronto es algo reciente, pero el archivo CSV que tiene la profesora en su GitHub tiene las variables con nombres diferente y no se dejan manejar dentro de RStudio. La única manera que encontré para arreglarlo fue convirtiéndolo en una tabla en Excel, poner nombres que acepte el programa y luego de vuelta a CSV. -_-

Si alguien tuvo problemas con el rename intenten utilizar este código

orangeec <- orangeec %>%
rename(AporteEcNja = Creat.Ind…GDP)

instalen también el paquete “dplyr” y los paquetes adicionales que les pida para su correcto funcionamiento

yo tuve que instalar “pkgconfig”

Una vez más me encuentro con esta comillla invertida:
R no acepta $GDP.PC sino GDP PC
Ej: orangeec[orangeec$GDP PC>=15000,]
No se si tengo una versión antigua de R y me gustaría entender qué son esas comillas invertidas, para qué sirven y cuál es su diferencia con las otras. Gracias!

Anotación

En todos los ejercicios donde simplemente se ha dicho que hay que poner una “comita” después. Eso equivale a mostrar todas las columnas, ya que el primer argumento selecciona las filas con una característica específica, pero no le estamos diciendo qué número de columnas queremos traer al aplicar ese filtro.

Recomiendo la libreria data table para manejar mas facil las tablas

Al instalar la librería **plyr **podremos renombrar las columnas de un dataset con el siguiente comando: rename(orangeec,c("NombreActualColumna"="NombreNuevoColumna"))

Ni siquiera explica bien cuando usar corchetes y cuando usar paréntesis.
De verdad eres mala Sonia.

A alguien más le pasa que cada rato me dice que no se ha encontrado el objeto orangeec?

Peru y Uruguay también esta en la lista de los países que aportan menos a la Economía naranja y no los nombró.

Que maravilla todo lo que se puede hacer

Error in mtcars(mtcars$cyl < 6, ) : could not find function "mtcars"
como solucciono este error?

¿Por qué luego de correr el rename (y ver que efectivamente cambió el nombre de la variable) corro summary(orangeec) y me sale el nombre de variable como Creat.Ind…GDP?

Otra forma de ver el primer ejemplo
mtcars[mtcars$cyl<6, ]
mtcars[fFila,Columna]
-La razón por la cual esta vacía es para obtener todas las columnas

== igual
!= no igual (diferente)
< menor que
<= menor o igual que

mayor que
= mayor o igual que
| o
! No
%in% que este en el dataset

Operador %in%
Más sobre este operador y R…

infE-Book

Tengo la version de R Studio 3.4.1. instalada y todos los resultados me salen diferentes, algún consejo en mi caso??

Para cargar el paquete solo deben hacer library(“plyr”)

#FueraCorreaFuera

Hola a pesar que instale “plyr” no corre la línea para renombrar, porque es eso?
Error in rename(orangeec, c(Crea.Ind…GDP = “AporteEcNja”)) :
could not find function “rename”

para lo que tienen errores al usar rename pueden hcaer esto
install.packages(“reshape”) => instalan por consola la libreria
library(reshape) => luego la llaman en su archivo de r y proceden hacer el rename
rename(orangeec_dataset,c(“Creat.Ind…GDP”=“AporteEconomi”))

cual es la diferencia entre:
(a & b)
y
(a && b)

Un atajo para el "<-"
alt + "guión (-)"
Al igual para correr una línea, seleccionan todo y corren pero basta con colocar el cursor al final de la línea y dar Ctrl + Enter

Tienen 2 formas de utilizar las librerias como plyr:

Forma 1
plyr::rename(data,c("Creat.Ind...GDP" = "AporteEcNja"))

Forma 2
require('plyr') rename(data,c("Creat.Ind...GDP" = "AporteEcNja"))

Ambas formas se pueden asignar a un dataset para persistir los resultados

Genial como estoy entendiendo las Variables, tipos de datos y estructuras de R con Sonia!!!

Excelente clase, a practicar mas para sacarle dominar el tema

`mtcars[mtcars$cyl<6,]

orangeec[orangeec$GDP.PC>=15000,]
orangeec[orangeec$Creat.Ind...GDP<=2,]

neworangeec <- subset(orangeec, Internet.penetration...population > 80 & Education.invest...GDP >= 4.5)
neworangeec

neworangeec <- subset(orangeec, Internet.penetration...population > 80 & Education.invest...GDP >= 4.5, select = Creat.Ind...GDP)
neworangeec

rename(orangeec,c('Creat.Ind...GDP'='AporteECNja'))````

Operadores Aritméticos

  • Adición
  • Substracción
  • Multiplicación
    / División
    ^ Potencia
    %% Módulo
    %/% División de enteros.

Operadores Comparativos:
< Menor que

Mayor que
<= Menor o igual que
= Mayor o igual que
== Igual
!= Diferente de

Operadores Lógicos:
! No lógico
& Y lógico
| O lógico
all
any

# O P E R A D O R E S

#  Nos permiten ejecutar consultas directamente sobre los DataSets

#Ejm: Traer los carros con menos de 6 cyl (cilindos)
mtcars[mtcars$cyl<6,]

#Ejm: Traer del dataset de economia naranja todos los paises con GDP igual o mayor a 15.000
orangeec[orangeec$GDP.PC>=15000,]

orangeec[orangeec$Creat.Ind...GDP<=2,]

#Ejm: Subconjuntos o SUBSET, se extrae en un dataset nuevo un subconjunto dados unos criterios

Consulta <- subset(orangeec, Internet.penetration...population > 80 & Education.invest...GDP >=4.5)

#Ejm: Podemos especificar que columnas requerimos de la base de datos
Consulta <- subset(orangeec, Internet.penetration...population > 80 & Education.invest...GDP >=4.5, select = c(Country,Creat.Ind...GDP))

### LIBRERIA: PLYR install.packages("plyr") -> Tools for splitting, Applying and Combining Data

#Usaremos la libreria PLYR para renombrar nombres de columnas
rename(orangeec,c("Creat.Ind...GDP"="AporteEcNaj"))


Se puede cambiar el nombre de las columnas ejecutando el siguiente codigo:

names (Nombre_Tabla) = c(“Nombre_col1”, “Nombre_col2”, “Nombre_col3”)

no se porque no me sale, necesito tal vez instalar algo en R estudio o que posiblemente puedo estar haciendo mal

Me salió el mensaje de error cuando instalé la librería usando install.packages(“plyr”), pero luego le di check a plyr en la barra de packages y funcionó.

En mi caso me aparecieron unos nombres de columnas diferentes, desde V1 hasta V13, quizá por la versión de R. Dejo código ajustado a esto:

orangeec[orangeec$V2>=15000,]

orangeec[orangeec$V6<=2,]


neworangeec <- subset(orangeec, V10 > 80 & V13 >= 4.5)
neworangeec

rename(orangeec, c("V6" = "AporteEN"))```

Para los que no les funcione esto

neworangeec <- subset(orangeec,
                      Internet.penetration...population > 80
                      & Education.invest...GDP >= 4.5,
                      select = c(Country,Creat.Ind...GDP))

y tampoco esto

neworangeec<-subset(orangeec,“Internet penetration % population”>80
& “Education invest % GDP”>=4.5)

es porque importaron el dataset sin el heading, y sus variables se llaman V1, V2, V3, V4

También podríamos poner en el select varias columnas así:

neworangeec <- subset(orangeec, Internet.penetration...population > 80
                      & Education.invest...GDP >= 4.5,
                      select = c(Country, Creat.Ind...GDP))

Muy interesante la clase, me esta empezado a gustar R.

#buqueda

#dtaset mtcars cuales tienen menos de 6 cilinddros
mtcars[mtcars$cyl<6,]

#dataset orangeec donde el pib per capita sea mayor a 15000
orangeec[orangeec$GDP.PC>15000, ]

#paises que estan aportando por debajo de 2 en la economia naranja
orangeec[orangeec$Creat.Ind...GDP<=2, ]

#paises con ppenetracion de internet mayor a 80% y con inversion de su pib en educacion de mayor o igual a 4.5
neworangeec <- subset(orangeec, Internet.penetration...population > 80 & Education.invest...GDP >= 4.5)

neworangeec

neworangeec <- subset(orangeec, Internet.penetration...population > 80 & Education.invest...GDP >= 4.5, selec = Creat.Ind...GDP)

neworangeec

#cambiar nombre a variables
rename(orangeec, c("Creat.Ind...GDP"="AporteEcoNaranja"))

**_Cuidado _**con el autocompleter, asegurarnos de usar:

install.packages()

Hola! Estoy ingresando orangeec [orangeec$GDP.PC >= 15000,]
y me sale:

orangeec [orangeec$GDP.PC >= 15000,]

A tibble: 0 x 13

… with 13 variables:

Country <chr>, GDP PC <dbl>,

GDP US bill <dbl>, `GDP Growth

%<dbl>,Services % GDP` <dbl>,

Creat Ind % GDP <dbl>,

Inflation <dbl>,

Unemployment <dbl>, `% pop below

poverty line<dbl>,Internet

penetration % population` <dbl>,

Median age <dbl>, `% pop

25-54<dbl>,Education invest %

GDP` <dbl>

Warning messages:
1: Unknown or uninitialised column: ‘GDP.PC’.
2: Length of logical index must be 1 or 17, not 0

Alguien sabe por qué? :c

Si tienen dudas respecto a subset, acuerden utilizar

?subset
mtcars[mtcars$cyl<6,]

orangeec[orangeec$GDP.PC>=15000,]

orangeec[orangeec$Creat.Ind...GDP<=2,]

neworangeec <- subset(orangeec, Internet.penetration...population > 80
                      & Education.invest...GDP <= 4.5)

neworangeec

neworangeec <- subset(orangeec, Internet.penetration...population > 80
                      & Education.invest...GDP <= 4.5,
                      select = Creat.Ind...GDP)

rename(orangeec,c('Creat.Ind...GDP'="AporteEcNja"))

Dejo un resumen de la clase:🟢

# Operadores para comparar y ubicar datos ______________________________________

mtcars[mtcars$cyl < 6, ] # En esta busqueda de datos, el primer argumento corresponde
                  # a una busqueda en los registros. Mientras que el segundo
                  # corresponde a una busqueda en las variables. En este caso,
                  # nuestra búsqueda esta centrada en las observaciones, por ello,
                  # se pone la coma y dejamos sin valor la busqueda de variables

# Los paises en los cuales su GDP.PC es mayor(>) o igual(=) a 15000 USD
orangeec[orangeec$GDP.PC >= 15000, ] 

# Los paises en los cuales su aporte al GDP desde las industrias creativas
# es menor (<) o igual(=) a 2%
orangeec[orangeec$Creat.Ind...GDP <= 2, ]

# Buscar datos usando 'subset'
# colnames(orangeec): Ejecute para copiar los nombres de las variables
neworangeec <- subset(orangeec, Internet.penetration...population > 80 
                      & Education.invest...GDP >= 4.5)
neworangeec



# Ahora vamos a seleccionar estos datos pero desde la variable de economia naranja
# Usando 'select' para seleccionar variables
neworangeec <- subset(orangeec, Internet.penetration...population > 80 
                      & Education.invest...GDP >= 4.5,
                      select = Creat.Ind...GDP)
neworangeec

# Vamos a cambiar el nombre de una variable con 'rename'
# en la versión de R (version 4.0.2) más reciente hasta 2020
# esta función hace parte del paquete 'dplyr'

rename(orangeec,c("AporteEcNja"="Creat.Ind...GDP"))

# Con esta versión de R el primer argumento es el nombre que deseamos y el segundo
# argumento es el nombre que vamos a cambiar

# Para instalar paquetes, consulte este script o algunos tutoriales que he hecho 
# para este curso 

Si desean hacer un subset trayendo +1 columnas lo que deben hacer es en el select, armar un contenedor que contenga los nombres de las columnas que quieren traer.

subset(mtcars,mtcars$cyl>4 & mtcars$hp>110, select = c("model","mpg"))

== igual != no igual (diferente) < menor que <= menor o igual que > mayor que >= mayor o igual que | o ! No %in% que este en el dataset

Como recomendación, ya se debería de trabajar con funciones obsoletas para el manejo de dataframes. Sugiero trabajar con el paquete tidyverse().