Clase-1 R y Rstudio

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 17

Utilización del lenguaje R para aplicación en la Encuesta Permanente de

Hogares

Clase 1 - Conceptos Principales de EPH y R Base


Las notas del presente curso fueron elaboradas originalmente por Diego Kozlowski y Guido
Weksler. En las sucesivas modificaciones colaboraron: Natsumi Shokida y Matías Lioni

EPH
 Descipción de la encuesta, periodicidad y cobertura.
 Información relevada en distintos cuestionarios

 Definción de variables de interés a abordar en el curso: Estados, Categorías


ocupacionales, Ingresos y Ponderadores : Archivo “Metodologia_EPHContinua 2003.pdf”
en la carpeta de Fuentes del curso.
 Bases de Microdatos: Archivos “usu_individualt117” en la carpeta de Fuentes del curso.
 Diseño de Registro : Archivo “EPH_registro_2_trim_2016.pdf” en la carpeta de Fuentes del
curso.

Descripción del programa

https://cran.r-project.org/

¿Que es R?
 Lenguaje para el procesamiento y análisis estadístico de datos
 Software Libre
 Sintaxis Básica: R base
 Sintaxis incremental1: El lenguaje se va ampliando por aportes de Universidades,
investigadores y empresas privadas, organizados en librerías (o paquetes)
 Comunidad web muy grande para realizar preguntas y despejar dudas.
 Graficos con calidad de publicación

fuente: https://gist.github.com/daroczig/3cf06d6db4be2bbe3368
https://www.rstudio.com/

El entorno más cómodo para utilizar el lenguaje R es el programa R studio


 Rstudio es una empresa que produce productos asociados al lenguaje R, como el programa
sobre el que corremos los comandos, y extensiones del lenguaje (librerías).
 El programa es gratuito y se puede bajar de la página oficial

Pantalla Rstudio

Diferencias con STATA y SPSS

 Gratuito
 Únicamente funciona por líneas de código (No hay botones para ejecutar comandos)
 Posibilita trabajar con múltiples bases de microdatos al mismo tiempo, sin mayor dificultad
(No requiere abrir cada base, trabajarla por separado y luego cerrarla)
 Más potente
o Totalmente automatizable
o Aportes de usuarios
o Extensible a otros lenguajes y usos (Presentación como esta, diseño de aplicaciones)
 Más veloz:

fuente: https://github.com/matthieugomez/benchmark-stata-r/blob/master/output/1e7.png

Lógica sintáctica.
Definición de objetos
Los Objetos/Elementos constituyen la categoría escencial del R. De hecho, todo en R es un objeto, y
se almacena con un nombre específico que no debe poseer espacios. Un número, un vector, una
función, la progresión de letras del abecedario, una base de datos, un gráfico, constituyen para R
objetos de distinto tipo. Los objetos que vamos creando a medida que trabajamos pueden visualizarse
en la panel derecho superior de la pantalla.
El operador <- sirve para definir un objeto. A la izquierda del <- debe ubicarse el nombre que
tomará el elemento a crear. Del lado derecho debe ir la definición del mismo

A <- 1

Al definir un elemento, el mismo queda guardado en el ambiente del programa, y podrá ser utilizado
posteriormente para observar su contenido o para realizar una operación con el mismo

A
[1] 1
A+6
[1] 7

Al correr una linea con el nombre del objeto, la consola del programa nos muestra su contenido.
Entre Corchetes Observamos el número de orden del elemento en cuestión
El operador = es equivalente a <-, pero en la práctica no se utiliza para la definición de objetos.

B=2
B
[1] 2

<- es un operador Unidireccional, es decir que:


A <- B implica que A va tomar como valor el contenido del objeto B, y no al revés.

A <- B
A #Ahora A toma el valor de B, y B continua conservando el mismo valor
[1] 2
B
[1] 2

R base
Con R base nos referimos a los comandos básicos que vienen incorporados en el R, sin necesidad de
cargar librerías.

Operadores lógicos:
 >>
 >=>=
 <<
 <=<=
 ====
 !=!=
#Redefinimos los valores A y B
A <- 10
B <- 20
#Realizamos comparaciones lógicas
A> B
[1] FALSE
A >= B
[1] FALSE
A< B
[1] TRUE
A <= B
[1] TRUE
A == B
[1] FALSE
A != B
[1] TRUE
C <- A != B
C
[1] TRUE

Como muestra el último ejemplo, el resultado de una operación lógica puede almacenarse como el
valor de un objeto.

Operadores aritméticos:
#suma
A <- 5+6
A
[1] 11
#Resta
B <- 6-8
B
[1] -2
#cociente
C <- 6/2.5
C
[1] 2.4
#multiplicacion
D <- 6*2.5
D
[1] 15

Funciones:
Las funciones son series de procedimientos estandarizados, que toman como imput determinados
argumentos a fijar por el usuario, y devuelven un resultado acorde a la aplicación de dichos
procedimientos. Su lógica de funcionamiento es:
funcion(argumento1 = arg1, argumento2 = arg2)
A lo largo del curso iremos viendo numerosas funciones, según lo requieran los distintos ejercicios.
Sin embargo, veamos ahora algunos ejemplos para comprender su funcionamiento:

 paste() : concatena una serie de caracteres, indicando por última instancia como separar a cada
uno de ellos
 paste0(): concatena una serie de caracteres sin separar
 sum(): suma de todos los elementos de un vector
 mean() promedio aritmético de todos los elementos de un vector

paste("Pega","estas",4,"palabras", sep = " ")


[1] "Pega estas 4 palabras"
#Puedo concatenar caracteres almacenados en objetos
paste(A,B,C,sep = "**")
[1] "11**-2**2.4"
# Paste0 pega los caracteres sin separador
paste0(A,B,C)
[1] "11-22.4"
1:5
[1] 1 2 3 4 5
sum(1:5)
[1] 15
mean(1:5,na.rm = TRUE)
[1] 3

Caracteres especiales
 R es sensible a mayúsculas y minúsculas, tanto para los nombres de las variables, como para
las funciones y parámetros.
 Los espacios en blanco y los carriage return (enter) no son considerados por el lenguaje.
Los podemos aprovechar para emprolijar el código y que la lectura sea más simple2.

 El numeral # se utiliza para hacer comentarios. Todo lo que se escribe después del # no es
interpretado por R. Se debe utilizar un # por cada línea de código que se desea anular
 Los corchetes [] se utilizan para acceder a un objeto:
o en un vector[n° orden]
o en una tabla[fila, columna]
o en una lista[n° elemento]
 el signo $ también es un método de acceso. Particularmente, en los dataframes, nos permitira
acceder a una determinada columna de una tabla
 Los paréntesis() se utilizan en las funciones para definir los parámetros.
 Las comas , se utilizan para separar los parametros al interior de una función.

Objetos:
Existen un gran cantidad de objetos distintos en R, en lo que resepcta al curso trabajaremos
principalmente con 3 de ellos:
 Valores
 Vectores
 Data Frames
 Listas

Valores
Los valores y vectores pueden ser a su vez de distintas clases:
Numeric
A <- 1
class(A)
[1] "numeric"

Character
A <- paste('Soy', 'una', 'concatenación', 'de', 'caracteres', sep = " ")
A
[1] "Soy una concatenación de caracteres"
class(A)
[1] "character"

Factor
A <- factor("Soy un factor, con niveles fijos")
class(A)
[1] "factor"

La diferencia entre un character y un factor es que el último tiene solo algunos valores permitidos (levels), con un orden
interno predefinido (el cual ,por ejemplo, se respetará a la hora de realizar un gráfico)

Vectores
Para crear un vector utilizamos el comando c(), de combinar.

C <- c(1, 3, 4)
C
[1] 1 3 4

sumarle 2 a cada elemento del vector anterior

C <- C + 2
C
[1] 3 5 6

sumarle 1 al primer elemento, 2 al segundo, y 3 al tercer elemento del vector anterior

D <- C + 1:3 #esto es equivalente a hacer 3+1, 5+2, 6+9


D
[1] 4 7 9

1:3 significa que queremos todos los números enteros desde 1 hasta 3.


crear un vector que contenga las palabras: “Carlos”,“Federico”,“Pedro”

E <- c("Carlos","Federico","Pedro")
E
[1] "Carlos" "Federico" "Pedro"

para acceder a algún elemento del vector, podemos buscarlo por su número de orden, entre [ ]

E[2]
[1] "Federico"

Si nos interesa almacenar dicho valor, al buscarlo lo asignamos a un nuevo objeto, dandole el nombre
que deseemos

elemento2 <- E[2]


elemento2
[1] "Federico"

para borrar un objeto del ambiente de trabajo, utilizamos el comando rm()

rm(elemento2)
elemento2
Error: object 'elemento2' not found

También podemos cambiar el texto del segundo elemento de E, por el texto “Pablo”

E[2] <- "Pablo"


E
[1] "Carlos" "Pablo" "Pedro"

Data Frames
Un Data Frame es una tabla de datos, donde cada columna representa una variable, y cada fila una
observación.
Este objeto suele ser central en el proceso de trabajo, y suele ser la forma en que se cargan datos
externos para trabajar en el ambiente de R, y en que se exportan los resultados de nuestros trabajo.
También Se puede crear como la combinación de N vectores de igual tamaño. Por ejemplo, tomamos
algunos valores del Indice de salarios
INDICE <- c(100, 100, 100,
101.8, 101.2, 100.73,
102.9, 102.4, 103.2)
FECHA <- c("Oct-16", "Oct-16", "Oct-16",
"Nov-16", "Nov-16", "Nov-16",
"Dic-16", "Dic-16", "Dic-16")
GRUPO <-
c("Privado_Registrado","Público","Privado_No_Registrado",

"Privado_Registrado","Público","Privado_No_Registrado",

"Privado_Registrado","Público","Privado_No_Registrado")

Datos <- data.frame(INDICE, FECHA, GRUPO)


Datos

INDI FECH
CE A GRUPO
<dbl> <fctr> <fctr>

100.00 Oct-16 Privado_Registrado

100.00 Oct-16 Público

100.00 Oct-16 Privado_No_Registrad


o

101.80 Nov- Privado_Registrado


16

101.20 Nov- Público


16

100.73 Nov- Privado_No_Registrad


16 o

102.90 Dic-16 Privado_Registrado

102.40 Dic-16 Público

103.20 Dic-16 Privado_No_Registrad


o
Tal como en un vector se ubica a los elementos mediante [ ], en un dataframe se obtienen sus
elementos de la forma [fila, columna].
Otra opción es especificar la columna, mediante el operador $, y luego seleccionar dentro de esa
columna el registro deseado mediante el número de orden.

Datos$FECHA
[1] Oct-16 Oct-16 Oct-16 Nov-16 Nov-16 Nov-16 Dic-16 Dic-16 Dic-16
Levels: Dic-16 Nov-16 Oct-16
Datos[3,2]
[1] Oct-16
Levels: Dic-16 Nov-16 Oct-16
Datos$FECHA[3]
[1] Oct-16
Levels: Dic-16 Nov-16 Oct-16

¿que pasa si hacemos Datos$FECHA[3,2] ?

Datos$FECHA[3,2]
Error in `[.default`(Datos$FECHA, 3, 2) : incorrect number of dimensions

Nótese que el último comando tiene un número incorrecto de dimensiones, porque estamos
refiriendonos 2 veces a la columna FECHA.
Acorde a lo visto anteriormente, el acceso a los dataframes mediante [ ], puede utilizarse para
realizar filtros sobre la base, especificando una condición para las filas. Por ejemplo, puedo utilizar
los [ ] para conservar del dataframe Datos unicamente los registros con fecha de Diciembre 2016:

Datos[Datos$FECHA=="Dic-16",]

INDI FEC
  CE HA GRUPO
  <dbl> <fctr> <fctr>

7 102.9 Dic- Privado_Registrado


16

8 102.4 Dic- Público


16

9 103.2 Dic- Privado_No_Registrad


16 o

3 rows

La lógica del paso anterior sería: Accedo al dataframe Datos, pidiendo únicamente conservar las filas
(por eso la condición se ubica a la izquierda de la ,) que cumplan el requisito de pertenecer a la
categoría “Dic-16” de la variable FECHA.
Aún más, podría aplicar el filtro y al mismo tiempo identificar una variable de interés para luego
realizar un cálculo sobre aquella. Por ejemplo, podría calcular la media de los indices en el mes de
Diciembre.
###Por separado
Indices_Dic <- Datos$INDICE[Datos$FECHA=="Dic-16"]
Indices_Dic
[1] 102.9 102.4 103.2
mean(Indices_Dic)
[1] 102.8333
### Todo junto
mean(Datos$INDICE[Datos$FECHA=="Dic-16"])
[1] 102.8333

La lógica de esta sintaxis sería: “Me quedó con la variable INDICE, cuando la variable FECHA sea
igual a “Dic-16”, luego calculo la media de dichos valores”

Listas
Contienen una concatenación de objetos de cualquier tipo. Así como un vector contiene valores, un
dataframe contiene vectores, una lista puede contener dataframes, pero también vectores, o valores,
y todo ello a la vez

superlista <- list(A,B,C,D,E,FECHA, DF = Datos, INDICE, GRUPO)


superlista
[[1]]
[1] Soy un factor, con niveles fijos
Levels: Soy un factor, con niveles fijos
[[2]]
[1] -2
[[3]]
[1] 3 5 6
[[4]]
[1] 4 7 9

[[5]]
[1] "Carlos" "Pablo" "Pedro"

[[6]]
[1] "Oct-16" "Oct-16" "Oct-16" "Nov-16" "Nov-16" "Nov-16" "Dic-16" "Dic-16" "Dic-16"

$DF

INDI FECH
CE A GRUPO
<dbl> <fctr> <fctr>

100.00 Oct-16 Privado_Registrado

100.00 Oct-16 Público

100.00 Oct-16 Privado_No_Registrad


o

101.80 Nov- Privado_Registrado


INDI FECH
CE A GRUPO
<dbl> <fctr> <fctr>

16

101.20 Nov- Público


16

100.73 Nov- Privado_No_Registrad


16 o

102.90 Dic-16 Privado_Registrado

102.40 Dic-16 Público

103.20 Dic-16 Privado_No_Registrad


o

9 rows

[[8]]
[1] 100.00 100.00 100.00 101.80 101.20 100.73 102.90 102.40 103.20
[[9]]
[1] "Privado_Registrado" "Público" "Privado_No_Registrado"
[4] "Privado_Registrado" "Público" "Privado_No_Registrado"
[7] "Privado_Registrado" "Público" "Privado_No_Registrado"

Para acceder un elemento de una lista, podemos utilizar el operador $, que se puede usar a su vez de
forma iterativa

superlista$DF$FECHA[2]
[1] Oct-16
Levels: Dic-16 Nov-16 Oct-16

Instalación de paquetes complementarios al R Base


Hasta aquí hemos visto múltiples funciones que están contenidas dentro del lenguaje básico de R.
Ahora bien, al tratarse de un software libre, los usuarios de R con más experiencia contribuyen
sistemáticamente a expandir este lenguaje mediante la creación y actualización
de paquetes complementarios. Lógicamente, los mismos no están incluidos en la instalación inicial
del programa, pero podemos descargarlos e instalarlos al mismo tiempo con el siguiente comando:

install.packages("nombre_del_paquete")

Resulta recomendable ejecutar este comando desde la consola ya que solo necesitaremos correrlo
una vez en nuestra computadora. Al ejecutar el mismo, se descargarán de la pagina de CRAN los
archivos correspondientes al paquete hacia el directorio en donde hayamos instalado el programa.
Típicamente los archivos se encontrarán en **C:Files-3.5.0**, siempre con la versión del programa
correspondiente.
Una vez instalado el paquete, cada vez que abramos una nueva sesión de R y querramos utilizar el
mismo debemos cargarlo al ambiente de trabajo mediante la siguiente función:
library(nombre_del_paquete)

Nótese que al cargar/activar el paquete no son necesarias las comillas.

Lectura y escritura de archivos

.csv y .txt
Hay muchas funciones para leer archivos de tipo .txt y .csv. La mayoría sólo cambia los parámetros
que vienen por default.
Es importante tener en cuenta que una base de datos que proviene de archivos .txt, o .csv puede
presentar diferencias en cuanto a los siguientes parametros:

 encabezado
 delimitador (,, tab, ;)
 separador decimal

dataframe <- read.delim(file, header = TRUE, sep = "\t", quote = "\"", dec = ".", fill = TRUE, comment.char = "", ...)

Ejemplo. Levantar la base individual de EPH del 1er trimestre 2017


En el parametro file tengo que especificar el nombre completo del archivo, incluyendo el directorio
donde se encuentra. Lo más sencillo es abrir comillas, apretar Tab y se despliega el menú de las cosas
que tenemos en el directorio de trabajo. Si queremos movernos hacia arriba, agregamos ../

individual_t117 <- read.table(file = '../Fuentes/usu_individual_t117.txt',sep=";", dec=",", header = TRUE, fill = TRUE)


individual_t117

ANO TRIMES NRO_HOG COMPONE


CODUSU 4 TRE AR NTE
<fctr> <int> <int> <int> <int>

TQRMNOQURHKOMLCDEFIAH004 2017 1 1 4
69284

TQRMNOQURHKOMLCDEFIAH004 2017 1 1 5
69284

TQRMNOQURHKOMLCDEFIAH004 2017 1 1 6
69284

TQRMNOQURHKOMLCDEFIAH004 2017 1 1 7
69284

TQRMNOQURHKOMLCDEFIAH004 2017 1 1 8
69284

TQRMNOQURHKOMLCDEFIAH004 2017 1 1 9
69284

TQRMNOQURHKOMLCDEFIAH004 2017 1 1 10
69284
ANO TRIMES NRO_HOG COMPONE
CODUSU 4 TRE AR NTE
<fctr> <int> <int> <int> <int>

TQRMNOQURHKOMLCDEFIAH004 2017 1 1 11
69284

TQRMNOQURHKOMLCDEFIAH004 2017 1 1 13
69284

TQRMNOQURHKOMLCDEFIAH004 2017 1 1 14
69284

Como puede observarse aquí, las bases individuales de la EPH cuentan con más de 58.000 registros y
177 variables. Al trabajar con bases de microdatos, resulta conveniente contar con algunos comandos
para tener una mirada rápida de la base, antes de comenzar a realizar los procesamientos que
deseemos.
Veamos algunos de ellos:

#View(individual_t117)
names(individual_t117)
[1] "CODUSU" "ANO4" "TRIMESTRE" "NRO_HOGAR" "COMPONENTE" "H15"
[7] "REGION" "MAS_500" "AGLOMERADO" "PONDERA" "CH03" "CH04"
[13] "CH05" "CH06" "CH07" "CH08" "CH09" "CH10"
[19] "CH11" "CH12" "CH13" "CH14" "CH15" "CH15_COD"
[25] "CH16" "CH16_COD" "NIVEL_ED" "ESTADO" "CAT_OCUP" "CAT_INAC"
[31] "IMPUTA" "PP02C1" "PP02C2" "PP02C3" "PP02C4" "PP02C5"
[37] "PP02C6" "PP02C7" "PP02C8" "PP02E" "PP02H" "PP02I"
[43] "PP03C" "PP03D" "PP3E_TOT" "PP3F_TOT" "PP03G" "PP03H"
[49] "PP03I" "PP03J" "INTENSI" "PP04A" "PP04B_COD" "PP04B1"
[55] "PP04B2" "PP04B3_MES" "PP04B3_ANO" "PP04B3_DIA" "PP04C" "PP04C99"
[61] "PP04D_COD" "PP04G" "PP05B2_MES" "PP05B2_ANO" "PP05B2_DIA" "PP05C_1"
[67] "PP05C_2" "PP05C_3" "PP05E" "PP05F" "PP05H" "PP06A"
[73] "PP06C" "PP06D" "PP06E" "PP06H" "PP07A" "PP07C"
[79] "PP07D" "PP07E" "PP07F1" "PP07F2" "PP07F3" "PP07F4"
[85] "PP07F5" "PP07G1" "PP07G2" "PP07G3" "PP07G4" "PP07G_59"
[91] "PP07H" "PP07I" "PP07J" "PP07K" "PP08D1" "PP08D4"
[97] "PP08F1" "PP08F2" "PP08J1" "PP08J2" "PP08J3" "PP09A"
[103] "PP09A_ESP" "PP09B" "PP09C" "PP09C_ESP" "PP10A" "PP10C"
[109] "PP10D" "PP10E" "PP11A" "PP11B_COD" "PP11B1" "PP11B2_MES"
[115] "PP11B2_ANO" "PP11B2_DIA" "PP11C" "PP11C99" "PP11D_COD" "PP11G_ANO"
[121] "PP11G_MES" "PP11G_DIA" "PP11L" "PP11L1" "PP11M" "PP11N"
[127] "PP11O" "PP11P" "PP11Q" "PP11R" "PP11S" "PP11T"
[133] "P21" "DECOCUR" "IDECOCUR" "RDECOCUR" "GDECOCUR" "PDECOCUR"
[139] "ADECOCUR" "PONDIIO" "TOT_P12" "P47T" "DECINDR" "IDECINDR"
[145] "RDECINDR" "GDECINDR" "PDECINDR" "ADECINDR" "PONDII" "V2_M"
[151] "V3_M" "V4_M" "V5_M" "V8_M" "V9_M" "V10_M"
[157] "V11_M" "V12_M" "V18_M" "V19_AM" "V21_M" "T_VI"
[163] "ITF" "DECIFR" "IDECIFR" "RDECIFR" "GDECIFR" "PDECIFR"
[169] "ADECIFR" "IPCF" "DECCFR" "IDECCFR" "RDECCFR" "GDECCFR"
[175] "PDECCFR" "ADECCFR" "PONDIH"

summary(individual_t117)[,c(8,10,31,133)]

MAS_500 PONDERA IMPUTA P21


N:31790 Min. : 25.0 Min. :0.000000 Min. : -9
S:26885 1st Qu.: 137.0 1st Qu.:0.000000 1st Qu.: 0
Median : 238.0 Median :0.000000 Median : 0
Mean : 467.3 Mean :0.002727 Mean : 3671
3rd Qu.: 541.0 3rd Qu.:0.000000 3rd Qu.: 4800
Max. :7001.0 Max. :1.000000 Max. :300000

head(individual_t117)[,1:5]

ANO TRIMES NRO_HOG COMPONE


  CODUSU 4 TRE AR NTE
  <fctr> <int> <int> <int> <int>

1 TQRMNOQURHKOMLCDEFIAH004 2017 1 1 4
69284

2 TQRMNOQURHKOMLCDEFIAH004 2017 1 1 5
69284

3 TQRMNOQURHKOMLCDEFIAH004 2017 1 1 6
69284

4 TQRMNOQURHKOMLCDEFIAH004 2017 1 1 7
69284

5 TQRMNOQURHKOMLCDEFIAH004 2017 1 1 8
69284

6 TQRMNOQURHKOMLCDEFIAH004 2017 1 1 9
69284

Excel
Para leer y escribir archivos excel debemos utilizar los comandos que vienen con la librería openxlsx

# install.packages("openxlsx") # por única vez


library(openxlsx) #activamos la librería
#creamos una tabla cualquiera de prueba
x <- 1:10
y <- 11:20
tabla_de_R <- data.frame(x,y)
# escribimos el archivo
write.xlsx( x = tabla_de_R, file = "archivo.xlsx",row.names = FALSE)
#Donde lo guardó? Hay un directorio por default en caso de que no hayamos definido alguno.
#getwd()
#Si queremos exportar multiples dataframes a un Excel, debemos armar previamente una lista de ellos. Cada dataframe, se guardará
en una pestaña de excel, cuyo nombre correspondera al que definamos para cada Dataframe a la hora de crear la lista.
Lista_a_exportar <- list("Indices Salarios" = Datos,
"Tabla Numeros" = tabla_de_R)
write.xlsx( x = Lista_a_exportar, file = "archivo_2_hojas.xlsx",row.names = FALSE)
#leemos el archivo especificando la ruta (o el directorio por default) y el nombre de la hoja que contiene los datos
Indices_Salario <- read.xlsx(xlsxFile = "archivo_2_hojas.xlsx",sheet = "Indices Salarios")
#alternativamente podemos especificar el número de orden de la hoja que deseamos levantar
Indices_Salario <- read.xlsx(xlsxFile = "archivo_2_hojas.xlsx",sheet = 1)
Indices_Salario

INDI FECH
  CE A GRUPO
  <dbl> <chr> <chr>

1 100.00 Oct-16 Privado_Registrado

2 100.00 Oct-16 Público

3 100.00 Oct-16 Privado_No_Registrad


o

4 101.80 Nov- Privado_Registrado


16

5 101.20 Nov- Público


16

6 100.73 Nov- Privado_No_Registrad


16 o

7 102.90 Dic-16 Privado_Registrado

8 102.40 Dic-16 Público

9 103.20 Dic-16 Privado_No_Registrad


o

Ambientes de trabajo
Hay algunas cosas que tenemos que tener en cuenta respecto del orden del ambiente en el que
trabajamos:

 Working Directory: El directorio de trabajo, pueden ver el suyo con getwd(), es hacia donde
apunta el código, por ejemplo, si quieren leer un archivo, la ruta del archivo tiene que estar
explicitada como el recorrido desde el Working Directory.
 Environment: Esto engloba tanto la información que tenemos cargada en Data y Values, como
las librerías que tenemos cargadas mientras trabajamos.

Es importante que mantengamos bien delimitadas estas cosas entre diferentes trabajos, sino:

1. El directorio queda referido a un lugar específico en nuestra computadora.


 Si se lo compartimos a otro se rompe
 Si cambiamos de computadora se rompe
 Si lo cambiamos de lugar se rompe
 Si primero abrimos otro script se rompe
2. Tenemos mezclados resultados de diferentes trabajos:
 Nunca sabemos si esa variable/tabla/lista se creo en ese script y no otro
 Perdemos espacio de la memoria
 No estamos seguros de que el script cargue todas las librerías que necesita

Rstudio tiene una herramienta muy útil de trabajo que son los proyectos. Estos permiten mantener un
ambiente de trabajo delimitado por cada uno de nuestros trabajos. Es decir:

 El directorio de trabajo se refiere a donde esta ubicado el archivo .Rproj


 El Environment es específico de nuestro proyecto.

Un proyecto no es un sólo script, sino toda una carpeta de trabajo.

logo Rpoject
Para crearlo, vamos al logo de nuevo projecto (Arriba a la izquierda de la panatalla), y elegimos la carpeta de trabajo.

Paquetes a utilizar a lo largo del curso:


Para quienes esten trabajando con sus computadoras personales, dejamos a continuación un listado
de los paquetes complementarios del R base que utilizaremos a lo largo del curso. Como la
instalación requiere descargar múltiples archivos de internet recomendamos hacerlo cuando
dispongan de una buena conexión. Con el siguiente comando podrían instalarlos todos de una vez:

install.packages(c("tidyverse","openxlsx",'ggplot2','ggthemes', 'ggrepel','ggalt','kableExtra'))

Ejercicios para practicar


Reiniciar R (Session --> Restart R)

 Crear un OBJETO llamado OBJETO definido como el resultado de la suma: 5 + 6


 Crear un VECTOR VEC0 que contenga los números 1, 3, 4.
 Crear 3 vectores ( VEC1, VEC2, VEC3) que sean transformaciones del anterior
 Crear 3 vectores con la misma cantidad de elementos que VEC0, pero con variables string
(texto) ( VEC4, VEC5, VEC6).
 Crear un dataframe DFRAME como combinación de todos los vectores creados previamente
 Levantar la base Individual del 1er trimestre de 2017, de la EPH
 Levantar del Excel llamado CANASTAS que se encuentra en la carpeta de Fuentes, la hoja
“CBT” y definirla como HojaCBT. Pueden usar la función read.xlsx de cualquiera de las
siguientes librerías:
o Vista en clase: openxlsx
o Otra opción que utiliza otros parametros: readxl

Ejercicios de tarea
Crear un nuevo script en la carpeta de la clase 1 nombrado “Nombre_Alumno_Tarea_C1.R”, y
realizar los siguientes procedimientos:

 Crear un OBJETO llamado COSA definido como el resultado de la multiplicación: 5*6


 Crear un VECTOR VECTOR0 que contenga los números 10, 20, 30.
 Modificar el segundo elemento del VECTOR0, asignandole el valor 40
 Crear 3 vectores con la misma cantidad de elementos que VEC0, pero con variables string
(texto) ( VECTOR1, VECTOR2, VECTOR3).
 Crear un dataframe DATAF como combinación de todos los vectores creados previamente
 Crear un objeto llamado OTRA_COSA que guarde el valor contenido en la segunda fila y
tercera columna del dataframe DATAF
 Levantar la base Individual del 4to trimestre de 2016, de la EPH
 Levantar del Excel llamado CANASTAS que se encuentra en la carpeta de Fuentes, la hoja
“CBA” y definirla como HojaCBA.

1. Más allá de los comandos elementales, comandos más sofisticados tienen muchas versiones, y
algunas quedan en desuso en el tiempo.↩
2. veremos que existen ciertas excepciones con algunos paquetes más adelante.↩

También podría gustarte