Introducción a R

grab-landing-page

Hola R

Crear proyectos en RStudio

Para crear un nuevo proyecto podés entrar en:

  • File ->New project

Luego poner el nombre de la carpeta.

Crear archivo en R

Para crear un nuevo archivo (en este ejemplo Rmarkdown) dentro del proyecto actual, podés entrar en:

File->New File->RMarkdown

Luego poner el nombre al archivo.

¿ Dònde estoy?

grab-landing-page

getwd()
## [1] "C:/Users/ypaulette/Desktop/Todo/R/People Analytics/PA"

Paquetes

  • 1° Instalamos los siguientes paquetes:

tidyverse

googlesheets4

DataExplorer

funModeling

kableExtra

  • 2° Los llamamos para usarlos en este proyecto. ¿ Cómo los invocamos?:
#Te invitamos a buscar luego, para qué sirve  cada uno 

# Cargar el paquete tidyverse:


# Cargar el paquete googlesheets4:


# Cargar el paquete DataExplorer:


# Cargar el paquete funModeling:


# Cargar el paquete kableExtra:

Recuerden:

La instalación de los paquetes se hace una sola vez por computadora.

La carga de los paquetese se hace cada vez que se abre un script.

Objetos

Creamos objetos que vamos a utlizar en diversas oportunidades. ¿Te animas a crearlos?

# Creamos un primer objeto  que se llame "blue" que contiene el siguiente valor  "344D7E"



# Creamos un  segundo  objeto  que se llame "fuente" que contiene el siguiente valor  "Fuente: Elaboración propia"

Consultemos los objetos creados:

# Consultá el objeto "blue" 


# Consultá el objeto "fuente" 

Los datos

Incorporamos la base de datos a utilizar. La misma las tenemos en el Drive.

¿ Como incorporamos un archivo del drive?

Usamos la funcion read_sheet(), a la cual tenemos que decirle dónde encontrar el archivo:

  • Se copia una parte de la URL:
# copiamos una parte de la URL y lo pegamos dentro  de las comillas. 


#*https://docs.google.com/spreadsheets/d/15Whz2abOoMbM1FhWTmGk35bugP7M9FHcL8wauu0B46A/edit?usp=sharing*  
  

#original<- read_sheet("") # 1° hoja 

Hacemos una copia de la base original y la llamamos “n1”:

# asignamos "original" a n1

#n1<- 

Exploración de Datos

Estructura

Una función que nos permite ver la estructura del dataset es str():

# Completá en la función  la base de dato a consultar. 

#str()

Visualizar

¿Cómo podemos visualizar nuestro dataset? Con la función view():

# Completá en la función  la base de dato a consultar. 

#view()


#Qué tamaño tiene?

Tamaños

¿Cuántas filas y columnas tiene “n1”?

Consultamos el tamaño de nuestro dataset, con la función dim:

# Completá en la función  la base de dato a consultar

#dim ()

Formatos

Consultamos los formatos de las variables con la funcion glimpse() . ¿ Para qué lo necesitamos?

# Completá en la función  la base de dato a consultar

#glimpse()

Cambiar nombres de columnas

Empezamos trabajando con los nombres de las columnas. Para eso usamos la funcion names():

# Completa en la función names la base de dato a consultar

#names()

De ser necesario, cambiamos los nombres de las columnas, con la funcion rename ().

# Mirá el formato de la función "rename"

n1<- n1 %>% 
  rename("Hs.Extras.100%" = "100%")%>% 
  rename("Hs.Feriado" = "100% FT")%>% 
  rename("Hs.Noct" = "Noc")%>% 
  rename("Hs.Noct.50%" = "Noc 50%")%>% 
  rename("Hs.Noct.100%" = "Noc 100%")%>%
  rename("Hs.Viaje" = "Horas Viaje")%>%
  rename("2°Vianda" = "D.Vianda")%>%
  rename("Centro.Costo" = "CC")


# Cambiale el nombre de la columna "50%" por "Hs.Extras.50%" :

#n1<- n1 %>% 
# rename(""="")

grab-landing-page

Manipular dataset

Quiero visualizar solo 3 columnas de n1: Legajo , Activo y Convenio. Lo hacemos con la función select():

# Completá las columnas que queremos seleccionar: 

# ¿ Te acordas qué hacia el pipe ( %>% )? 


#n1%>% 
#  select()

Quiero eliminar 1 columna de n1 Vacaciones que no voy a utilizar. Lo hacemos con la funcion select().

¿ Te animas a escribirla?

#Al finalizar la función corroborá que se haya eliminado

#n1<- n1 %>% 
#  select()

Quiero consultar todas las personas mayores de 45. Lo hacemos con la función filter():

n1 %>% 
  filter(Edad>45)
## # A tibble: 6 x 18
##   Legajo Nombre       Edad Centro.Costo Activo Convenio   `50%` `Hs.Extras.100%`
##    <dbl> <chr>       <dbl>        <dbl> <chr>  <chr>      <dbl>            <dbl>
## 1    106 Fulano  106    64          100 SI     Petroleros    69               84
## 2    107 Fulano  107    56          710 SI     Petroleros    36                0
## 3    110 Fulano  110    53          300 SI     Petroleros     0                0
## 4    111 Fulano  111    61          450 SI     Petroleros    72               72
## 5    121 Fulano  121    56          100 SI     Petroleros     0                0
## 6    122 Fulano  122    55          600 SI     Jerarquic~     0                0
## # ... with 10 more variables: Hs.Feriado <dbl>, Hs.Noct <dbl>,
## #   `Hs.Noct.50%` <dbl>, `Hs.Noct.100%` <dbl>, Hs.Viaje <dbl>,
## #   `2°Vianda` <dbl>, Vianda <dbl>, Desarraigo <dbl>, Enfermedad <dbl>,
## #   Vacaciones <dbl>

La siguiente función tiene un error, ¿ Te animas a cooregirla y correr el código?

# Filtrar por las personas con 18 años de Edad

#n1 %>% 
#  filter(Edad=18)

Vamos a achicar nuestro datset.

Solo nos vamos a quedar con las siguientes columnas de n1. ¿ Cómo lo hacemos?

Legajo, Centro.Costo, Edad, Activo, Convenio, Hs.Extras.100%, Hs.Noct, Enfermedad

# Crear un nuevo data frame con las columnas seleccionadas
# ayuda: a la siguiente formula solo falta agregarle 1 verbo de tidyverse: 


#n1 <- n1 %>%  #  por qué esta 2 veces n1?
#      select()

Cómo quedo nuestro nuevo datset?

¿ Con qué función podemos visualizarlo?

# Escribi la funciòn para visualizar

¿ Cuàl es el nuevo tamaño?

# Escribi la funciòn para consultar el tamaño

Resumenes

La siguiente formula está completa, la vamos a usar para contar los activos y no activos.

Tenemos que asignarlo a un objeto nuevo que se llame “nomina”:

# Asigna toda la formula a un objeto de tipo tabla,  llamado "nomina"


n1 %>% 
  select(Activo) %>%
  mutate(cuenta = 1) %>% 
  group_by(Activo) %>% 
  summarise(Cuenta = sum(cuenta)) %>% 
  arrange(-Cuenta)

Visualicemos cómo quedo la tabla creada:

# Escribir la funciòn para visualizar la tabla

Podemos mejorar la visualizacion de la misma tabla , con la funcion kable():

#nomina %>% 
#  kable()

Queremos saber la edad promedio por centro de costo a fin de evaluar acciones concretas de beneficios:

n1 %>%
  select(Centro.Costo, Edad) %>% # Selecciona las columnas
  group_by(Centro.Costo) %>%  # Agrupa por la variable centro de Costo
  summarise(edad_promedio = mean(Edad)) %>% # Crea una variable con la edad promedio
  arrange(-edad_promedio) # Ordena descendentemente los resultados
## # A tibble: 9 x 2
##   Centro.Costo edad_promedio
##          <dbl>         <dbl>
## 1          450          44.5
## 2          100          42.8
## 3          300          38.5
## 4          710          33  
## 5          500          32  
## 6          600          31  
## 7          800          31  
## 8          610          27.4
## 9          700          20

Te animas a calcular la edad promedio por centro de costo, pero solo de los activos:

# Escribir la funciòn para saber la edad promedio de los activos 

Gráficos

Veamos algunas opciones para visualizar los datos.

Algo que siempre debemos hacer con las variables numéricas es analizar su distribución.

Para eso podemos usar la función plot_histogram().

# Escribir la función y la base de datos a consultar:  

Si solo quiero consultar la variable Edad:

plot_histogram(n1$Edad)

Otra visualizacion de todas las variables numericas en con la siguiente funciòn plot_num():

# Escribir la funciòn y la base de datos a consultar:  

Seleccionemos 3 variables para visualizar con plot_num:

# Se ven todas las variables? ¿Qué pudo haber pasado?

n1 %>% 
select(Edad,Convenio, Activo) %>% 
plot_num()

Llegamos al Final!

grab-landing-page