Está en la página 1de 52

INTRODUCIÓN AL R Serie de

Y AL R- STUDIO Apuntes
El objetivo de este apunte de clase es proporcionar las de Clase
nociones básicas para personas interesadas en
comenzar a utilizar el paquete econométrico R. N°3
Poniendo énfasis en el funcionamiento de R, con el
objetivo de que se pueda usar de una manera básica.
Dado que R brinda una amplia gama de posibilidades,
es útil para el principiante adquirir algunas nociones y
conceptos y así progresar gradualmente.
Serie de apuntes de clase IFE N°03 noviembre del 2022

INTRODUCIÓN AL R Y AL R- STUDIO ∗

Rafael Bustamante Romaní 1

Resumen
R es un programa es ampliamente conocido como un lenguaje de programación y un entorno para
análisis estadístico y para la realización de gráficos de gran calidad. Contiene un entorno de
computación factible para la implementación y la aplicación de métodos numéricos de manera
sencilla y efectiva. Aunque el lenguaje R permite varios estilos de programación, en la medida de lo
posible, se usa un estilo orientado a la "programación de arreglos" (llamado "vectorización"). Como R
es un lenguaje interpretado para acelerar R usando "vectorización", o usando el paquete Rcpp para
conectar R con C++ y también paralelización.
El objetivo de este apunte de clase es proporcionar las nociones básicas para personas interesadas
en comenzar a utilizar el paquete econométrico R. Poniendo énfasis en el funcionamiento de R, con
el objetivo de que se pueda usar de una manera básica. Dado que R brinda una amplia gama de
posibilidades, es útil para el principiante adquirir algunas nociones y conceptos y así progresar
gradualmente.
Se busca, asimismo simplificar al máximo las explicaciones para hacerlas lo más comprensivas
posibles, pero al mismo tiempo proporcionando detalles útiles, algunas veces con la ayuda de tablas.

PALABRAS CLAVES: Método numéricos, lenguaje R, álgebra lineal, ecuaciones no lineales,


integración, ecuaciones diferenciales

CLASIFICACIÓN JEL: C00, C02.

1
Economista con más de 15 años de experiencia en el dictado de: Econometría Financiera, Econometría Avanzada,
Macroeconomía y Microeconomía e informática para economistas. Docente investigador en la UNMSM en el área de finanzas y
ciencia de datos. Docente de Econometría Avanzada con Stata, R Studio y Python. Magister en Economía con mención en
Finanzas y MBA CENTRUM en PUCP. Estudios concluidos del Doctorado en Economía (UNAM.) MBA con Énfasis en
Business Intelligence y Big Data por el Instituto europeo de Postgrado y el Master en Ciencia de datos y análisis por la
Universidad Sao Paulo y el Doctorado en Economía y Finanzas UFM- OMMA. Cofundador de la empresa de Capacitación
Finance and Econometrics SAC.

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 1


Serie de apuntes de clase IFE N°03 noviembre del 2022

Contenido

1. Introducción ........................................................................................................................................ 3
2. Introducción al entorno R ................................................................................................................... 4
2.1. Instalación de R y R‐Studio .......................................................................................................... 6
1.2 Instalación de R Studio. ................................................................................................................. 9
3. Ventajas y desventajas de R Studio ................................................................................................... 12
3. R como un sistema de ventanas........................................................................................................ 17
3.1 Utilización interactiva de R.......................................................................................................... 18
3.2. Programas relacionados y documentación ................................................................................ 18
3.3. El espacio de trabajo .................................................................................................................. 18
3.4 Algunas características importantes de R ................................................................................... 19
3.4.1 El sistema R está dividido en dos partes conceptuales: ....................................................... 19
4. Funciones básicas de R ...................................................................................................................... 21
5. Operaciones básicas .......................................................................................................................... 22
6. Estadística con R ................................................................................................................................ 24
6. Objetos – Tipos .................................................................................................................................. 25
6.1 Objetos ........................................................................................................................................ 25
6.1.1 Vectores ............................................................................................................................... 25
6.1.2 Creación de un vector .......................................................................................................... 26
6.1.3 Generación de Niveles ......................................................................................................... 29
6.1.4 Factores ................................................................................................................................ 31
6.1.4 Indexación de Factores......................................................................................................... 37
6.1.6 Uso de las listas .................................................................................................................... 40
7. Operaciones con Matrices................................................................................................................. 41
8. Arrays (Variable Multiindexada) ....................................................................................................... 46
9. Data frames ...................................................................................................................................... 46
Creamos una matriz. ......................................................................................................................... 48
Bibliografía ............................................................................................................................................ 50

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 2


Serie de apuntes de clase IFE N°03 noviembre del 2022

1. Introducción

El análisis de datos es parte esencial del estudio de sistemas. En particular, es una


parte esencial en el planteamiento de los modelos matemáticos y también en la toma
de decisiones basada en los resultados de la simulación de los modelos. Por ello, las
herramientas de modelado y simulación empleadas en las Ciencias a menudo
facilitan el análisis de datos. ( Urquía Moraleda & Martín Villalba, 2006).

Para comenzar con el aprendizaje del lenguaje de programación R, es muy probable


nos preguntemos sobre la ventaja y la utilidad de R sobre otros programas de
estadística; como veremos adelante R es más que ello. La intención de estos
apuntes de clase es responder algunas dudas y alentar a que explores este software
eficaz, que puede ser aplicado ampliamente en el procesamiento de datos en
ciencias.

R es un lenguaje de programación interpretado, de distribución libre, bajo Licencia


GNU, y se mantiene en un ambiente para el cómputo estadístico y gráfico. Este
software corre en distintas plataformas Linux, Windows, y MacOS. El término
ambiente pretende caracterizarlo como un sistema totalmente planificado y
coherente, en lugar de una acumulación gradual de herramientas muy específicas y
poco flexibles, como suele ser con otro software de análisis de datos. El hecho que
R sea un lenguaje y un sistema es porque forma parte de la filosofía de creación1,
como lo explica John Chambers (Chambers and Hastie [1991]), cito:

“Buscamos que los usuarios puedan iniciar en un entorno interactivo, en el que no se


vean, conscientemente, a ellos mismos como programadores. Conforme sus
necesidades sean más claras y su complejidad se incremente, deberían
gradualmente poder profundizar en la programación, es cuando los aspectos del
lenguaje y el sistema se vuelven más importantes.”

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 3


Serie de apuntes de clase IFE N°03 noviembre del 2022

Por este motivo, en lugar de definir a R como un sistema estadístico, es preferible


verlo como un entorno en el que se aplican técnicas estadísticas. Por ejemplo, aquí
nos inclinaremos hacia el lado de la programación (lenguaje) más que analizar los
aspectos estadísticos. Esto con el propósito de ampliar la diversidad de aplicaciones
en el tratamiento de los datos.

2. Introducción al entorno R

El programa R puede entenderse como un lenguaje de programación, como un


potente software de análisis estadísticos o incluso como un generador de gráficos.
Cualquiera de los tres significados es compatible con una definición del R. Estos
apuntes de clase ofrecen al estudiante interesado en programación, los conceptos
básicos y necesarios de la sintaxis de R que le permitirán trabajar en un entorno
para su uso con interfaces de códigos2.

Podemos definir R como un entorno en el que se aplican los métodos estadísticos


de análisis de datos. En este entorno, tal como se indica en la web del programa,
www.r-project.org, podemos encontrar los siguientes componentes:

 Herramientas de lectura, importación, gestión y almacenamiento de datos.


 Funciones y operadores diseñados para actuar directamente sobre vectores o
matrices.
 Una gran colección, coherente e integrada, de herramientas para el análisis
de datos.

2
Interfaz es lo que conocemos en inglés como interface (“superficie de contacto”). En informática, se utiliza para
nombrar a la conexión funcional entre dos sistemas, programas, dispositivos o componentes de cualquier tipo,
que proporciona una comunicación de distintos niveles permitiendo el intercambio de información. Su plural es
interfaces. Ejemplos de interfaces en informática son las interfaces de usuario (entre computadora y persona)
como sería una pantalla o un ratón (si hablamos de hardware) o la ventana gráfica de un programa con la que
interactuamos (si hablamos de software); las interfaces físicas (entre dos dispositivos) como el SCSI o el USB; o las
interfaces lógicas (entre dos programas) como la API o el DOM.

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 4


Serie de apuntes de clase IFE N°03 noviembre del 2022

 Procedimientos gráficos para el análisis y visualización de datos, ya sea en


pantalla o en papel.
 Un completo y bien desarrollado lenguaje de programación, simple y eficiente,
que incluye gran cantidad de funciones predefinidas, instrucciones
condicionales, bucles, posibilidad de definir funciones recursivas y
procedimientos avanzados de entrada y salida, con la posibilidad de importar
o exportar datos a un gran número de aplicaciones.
 Un intérprete de comandos para la aplicación efectiva de todas estas
herramientas. A este intérprete es posible acceder de varias formas:
• De modo interactivo a través de una consola.
• Lanzando un script que consiste básicamente en un archivo en el que
el usuario ha introducido todos los comandos que desea ejecutar.
• A través de diversas interfaces gráficas de usuario (GUI). La interfaz
gráfica de usuario, conocida también como GUI (del inglés graphical
user interface), es un programa informático que actúa de interfaz de
usuario, utilizando un conjunto de imágenes y objetos gráficos para
representar la información y acciones disponibles en la interfaz. Su
principal uso, consiste en proporcionar un entorno visual sencillo para
permitir la comunicación con el sistema operativo de una máquina o
computador.
• Habitualmente las acciones se realizan mediante manipulación directa,
para facilitar la interacción del usuario con la computadora. Surge
como evolución de las interfaces de línea de comandos que se usaban
para operar los primeros sistemas operativos y es pieza fundamental
en un entorno gráfico.
• En el contexto del proceso de interacción persona-computadora, la
interfaz gráfica de usuario es el artefacto tecnológico de un sistema
interactivo que posibilita, a través del uso y la representación del
lenguaje visual, una interacción amigable con un sistema informático.

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 5


Serie de apuntes de clase IFE N°03 noviembre del 2022

2.1. Instalación de R y R‐Studio

Para la instalación del programa R, con su navegador abra la página www.r-


project.org.

Marque el enlace Download R como se ilustra.

FIGURA N° 1

Figura Nº 2

FIGURA N° 2

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 6


Serie de apuntes de clase IFE N°03 noviembre del 2022

Luego procedemos a acceder a cualquiera de los links donde se pueda descargar el


programa. En nuestro caso hemos elegido la primera opción.

FIGURA N° 3

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 7


Serie de apuntes de clase IFE N°03 noviembre del 2022

Luego elegimos la opción de descarga para el sistema operativo que tengamos en


nuestra computadora.

FIGURA N° 4

FIGURA N° 5

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 8


Serie de apuntes de clase IFE N°03 noviembre del 2022

En nuestro caso estamos descargando la última versión, a la fecha, actualizada a la


fecha que es Download R 4.2.2 for Windows .
Una vez terminada la instalación del programa R, lo ejecutamos y el programa se
abrirá con una ventana como se muestra que se conoce como la consola del R,
donde se tiene que escribir los comandos para su ejecución.

FIGURA N° 6

1.2 Instalación de R Studio.

Hoy en día, la mejor plataforma para utilizar R (sobre todo para el principiante) es
RStudio1. RStudio es un IDE 3 muy popular y que ofrece un entorno prácticamente
idéntico en todos los sistemas operativos para utilizar R. Para instalar esta

3
Normalmente, un IDE consiste de un editor de código fuente, herramientas de construcción automáticas y un depurador. La
mayoría de los IDE tienen un autocompletado inteligente de código (IntelliSense). Algunos IDE contienen un compilador, un
intérprete, o ambos, tales como NetBeans y Eclipse; otros no, tales como SharpDevelop y Lazarus. El límite entre un IDE y otras
partes del entorno de desarrollo de software más amplio no está bien definido. Muchas veces, a los efectos de simplificar la
construcción de la interfaz gráfica de usuario (GUI, por sus siglas en inglés) se integran un sistema controlador de versión y
varias herramientas. Muchos IDE modernos también cuentan con un navegador de clases, un buscador de objetos y un
diagrama de jerarquía de clases, para su uso con el desarrollo de software orientado a objetos.

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 9


Serie de apuntes de clase IFE N°03 noviembre del 2022

plataforma entramos a la página del R Studio, que actualmente a migrado a:

https://posit.co/

FIGURA N° 7

Luego procedemos a acceder a download y se nos presenta la siguiente pantalla.

FIGURA N° 8

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 10


Serie de apuntes de clase IFE N°03 noviembre del 2022

Finalmente accedemos a la siguiente pantalla donde podemos escoger la plataforma


de donde bajar instalador o si quiero bajarme todo el paquete con todo el conjunto
de archivos para tenerlo de una manera portable.

FIGURA N° 9

RStudio, por defecto, tiene cuatro paneles. El panel inferior izquierdo es una consola
de R. En ella se puede escribir y ejecutar código. R muestra también en ella los
resultados obtenidos.

El panel superior izquierdo es un editor de código. Los ficheros que se abran y se


editen aparecerán en él dentro de sus correspondientes pestañas. Es imperativo
aprender a usar algunos de los atajos de teclado más comunes. Por ejemplo,
Control + R ejecuta la línea de código en la que se sitúa el cursor.

Los paneles de la derecha son menos importantes. El superior contiene un listado de


las variables en el entorno y un histórico de comandos ejecutados. El inferior
contiene varias pestañas; las que más se usan son:

 Files: da acceso al sistema de ficheros del disco duro


 Plots: aloja los gráficos que cree R
 Help: muestra la página de ayuda de las funciones cuando la solicite el
usuario

 Packages: Descarga e instalación de paquetes

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 11


Serie de apuntes de clase IFE N°03 noviembre del 2022

FIGURA N° 10

3. Ventajas y desventajas de R Studio

Entre las ventajas podemos mencionar:


 Es software libre y por tanto su coste es nulo y el número de paquetes, lo
que ha crecido en el último año a la nada despreciable velocidad de
aproximadamente 2 paquetes diarios.

 Es multiplataforma: existen versiones para Linux, Mac y Windows. Los


procedimientos y análisis desarrollados en una plataforma son
inmediatamente ejecutables en otra.
 Implementa una enorme cantidad de métodos estadísticos, desde los
más clásicos a los más modernos. Los métodos se organizan en librerías
cuyo número se encuentra en constante crecimiento.

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 12


Serie de apuntes de clase IFE N°03 noviembre del 2022

 Dispone de una enorme capacidad para combinar, de manera simple,


métodos de análisis estándar (regresión, análisis de cluster, análisis de series
temporales) con análisis desarrollados ad hoc para una situación específica.

 Capacidad para acceder a datos en múltiples formatos. Dispone de


librerías para leer datos desde SPSS, SAS, Access, MySQL, Excel...
Asimismo permite también la generación de informes de resultados en
diversos formatos.
 Enorme capacidad para manipular y /o modificar datos y funciones.
 Generación de gráficos de alta calidad.
 Existencia de una comunidad de usuarios muy activa, en la que participan
estadísticos de renombre.
 Extensa disponibilidad de documentación, tanto en internet como en libros
publicados por editoriales de prestigio.
 Facilidad de integración con actividades de formación en técnicas y métodos
estadísticos en todos los ámbitos del conocimiento. Su uso es cada vez más
generalizado en las universidades, lo que implica que las nuevas
generaciones de profesionales ya salen al mercado laboral con formación
específica en el manejo de este programa.
 En particular, su uso en la docencia tiene la ventaja de que no es necesario
que el estudiante adquiera licencias para su uso, por lo que cualquier alumno
puede instalar R en su ordenador personal y desarrollar tareas, trabajos, etc.
utilizando este programa. Asimismo, una vez que el estudiante se gradúe y
abandone la universidad, podrá seguir utilizando R en cualquier ámbito
profesional o de desarrollo.

 Existencia de extensiones específicas para nuevas áreas como


bioinformática, geoestadística, modelos gráficos o análisis de mercados
financieros4.

4
¡La editorial Springer tiene una colección –UseR! – dedicada exclusivamente a R.

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 13


Serie de apuntes de clase IFE N°03 noviembre del 2022

Entre las desventajas podemos mencionar:

 El código R es interpretado, no compilado, por lo que algún algoritmo puede


resultar de ejecución lenta, en particular si se realizan tareas de simulación
intensiva. Esto no constituye mayor problema para un uso ordinario del
programa. En cualquier caso, a partir de la versión 2.14, todas las funciones y
librerías de R se encuentran precompiladas, lo que apresura su ejecución de
manera considerable.

 En algún caso las nuevas librerías que se incorporan a R pueden tener


errores o fallos de implementación. Estos fallos, no obstante, suelen ser
detectados por los usuarios, informados a los desarrolladores de las
librerías y corregidos en tiempo real. Debe mencionarse, no obstante, que
ningún programa (incluso los comerciales) está exento de fallos y el proceso
de revisión y corrección de fallos en programas comerciales mediante
parches o actualizaciones suele ser notablemente más lento. Ello se debe a
que todos los datos con los que se trabaja deben permanecer
simultáneamente en memoria. No obstante, es posible derivar parte de la
carga de trabajo del procesamiento de datos al propio motor de la base de
datos que se utiliza, mediante comandos SQL.

 No soporta gráficos en tres dimensiones o dinámicos. El resultado de cada


informe puede ser algo pobre visualmente y bastante anticuado en
comparación con el ofrecido por otros programas.

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 14


Serie de apuntes de clase IFE N°03 noviembre del 2022

 Su lentitud le resta efectividad y competitividad. Existen lenguajes de


programación más rápidos que ofrecen una capacidad de respuesta más
adecuada.
 Los algoritmos no están unificados. Cada uno de ellos se almacena en un
paquete distinto, por lo que hay que ir cambiando de opción para leer los
datos obtenidos.
 Su origen está en S, un lenguaje de programación bastante anticuado que no
ha sabido adaptarse a los tiempos. Otras alternativas, como Python, son más
competitivas.
 Debido a la acumulación de opciones, aprender a manejarlo totalmente
lleva bastante tiempo y no siempre es fácil de alcanzar este objetivo. No es
la mejor opción para personas que no tienen cierto conocimiento previo de
programación. Incluso programadores expertos cometen errores en su uso al
necesitar una formación concreta en un lenguaje que tiene pocos puntos en
común con otros con los que comparte objetivos.

 Sus restricciones y su incompatibilidad con otros lenguajes de programación


frenan que se pueda usar para crear aplicaciones web.
 Acumula todos los datos en una única carpeta que termina ocupando
demasiado espacio en una memoria física. Esta circunstancia conlleva que
sea necesario volcar los datos de forma periódica para evitar el colapso de los
dispositivos de almacenamiento.
 No tiene medidas de seguridad, por lo que es muy fácil de vulnerar por
parte de los ciberdelincuentes. Poner en riesgo la información personal de
los clientes de una empresa puede provocar la toma de medidas legales que
terminen generando un serio problema económico.
 Su actualización constante conlleva tener que aprender las características de
cada apartado continuamente. Así, el analista de los datos no siempre tendrá
la seguridad necesaria al usar un programa en evolución permanente que
puede cambiar de un día para otro (IMF Blog Tecnología, 2022).

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 15


Serie de apuntes de clase IFE N°03 noviembre del 2022

 A todos los enunciados anteriores podemos añadir el siguiente, que será


considerado por unos una ventaja y por otros un inconveniente:

 Para hacer un buen uso de R se debe tener un buen


conocimiento de los métodos estadísticos. En realidad, esta
afirmación es cierta no sólo para R, sino para cualquier paquete
estadístico. Sin embargo, en la práctica programas como SPSS,
Statistica o SYSTAT permiten, a través de sus menús, que el
usuario pueda aplicar casi cualquier procedimiento estadístico
sin apenas esfuerzo y obtenga conjunto de resultados que
muchas veces es incapaz de interpretar. R es bastante más
atento en sus salidas de resultados y, cuando se han de aplicar
modelos de cierta complejidad, la mayoría de las veces el
usuario se verá obligado a especificar exactamente qué es lo
que quiere hacer, lo que implica buen nivel de conocimiento de
los problemas abordados.

 R posee muchas funciones para análisis estadísticos y


gráficos; estos últimos pueden ser visualizados de manera
inmediata en su propia ventana y ser guardados en varios
formatos (jpg, png, bmp, ps, pdf, emf, pictex, xfig; los formatos
disponibles dependen del sistema operativo).

Los resultados de análisis estadísticos se muestran en la pantalla, y algunos


resultados intermedios (como valores P-, coeficientes de regresión, residuales, . . .)
se pueden guardar, exportar a un archivo, o ser utilizados en análisis posteriores. El

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 16


Serie de apuntes de clase IFE N°03 noviembre del 2022

lenguaje R permite al usuario, por ejemplo, programar bucles5 (’loops’ en inglés)


para analizar conjuntos sucesivos de datos. También es posible combinar en un solo
programa diferentes funciones estadísticas para realizar análisis más complejos.
Usuarios de R tienen a su disponibilidad un gran número de programas escritos para
S y disponibles en la red; 6 la mayoría de estos pueden ser utilizados directamente
con R.

Al principio, R puede parecer demasiado complejo para el usuario principiante. Esto


no es necesariamente cierto, porque una de las características más sobresalientes
de R es su enorme flexibilidad.

Mientras que programas más clásicos muestran directamente los resultados de un


análisis, R guarda estos resultados como un “objeto”, de tal manera que se puede
hacer un análisis sin necesidad de mostrar su resultado inmediatamente. Esto puede
ser un poco extraño para el usuario, pero esta característica suele ser muy útil. De
hecho, el usuario puede extraer solo aquella parte de los resultados que le interesa.
Por ejemplo, si uno corre una serie de 20 regresiones y quiere comparar los
coeficientes de regresión, R le puede mostrar únicamente los coeficientes
estimados: de esta manera los resultados se pueden resumir en una sola línea,
mientras que un programa clásico le puede abrir 20 ventanas de resultados. Más
adelante, veremos otros ejemplos que ilustran y comparan la flexibilidad de R con
programas de estadística más tradicionales ( Paradis, 2010).

3. R como un sistema de ventanas

La forma más conveniente de usar R es en una estación de trabajo con un sistema


de ventanas. Estas notas están escritas pensando en usuarios de estas
características. En particular nos referiremos ocasionalmente a la utilización de R en

5 Un bucle o ciclo, en programación, es una secuencia que ejecuta repetidas veces un trozo de código,
hasta que la condición asignada a dicho bucle deja de cumplirse. Los tres bucles más utilizados en
programación son el bucle while, el bucle for y el bucle do-while.
6
Por ejemplo: http://stat.cmu.edu/S/

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 17


Serie de apuntes de clase IFE N°03 noviembre del 2022

un sistema X-Windows, aunque normalmente se pueden aplicar a cualquier


implementación del entorno R.

3.1 Utilización interactiva de R


Cuando R espera la entrada de órdenes, presenta un símbolo para indicarlo. El
símbolo predeterminado es ‘>’, que en UNIX puede coincidir con el símbolo del
sistema, por lo que puede parecer que no sucede nada. Si ese es el caso es posible
modificar este símbolo en R.

3.2. Programas relacionados y documentación

R puede definirse como una nueva implementación del lenguaje S desarrollado en


AT&T por Rick Becker, John Chambers y Allan Wilks. Muchos de los libros y
manuales sobre S son útiles para R. La referencia básica es The New S Language:
A Programming Environment for Data Analysis and Graphics de Richard A. Becker,
John M. Chambers and Allan R. Wilks. Las características de la versión de agosto de
1991 de S están recogidas en Statistical Models in S editado por John M. Chambers
y Trevor J.

3.3. El espacio de trabajo

El espacio de trabajo es donde se guardan todos los objetos creados durante la


sesión. Puede obtenerse una lista de todos los objetos del mismo mediante:

ls ()

La función rm() elimina del espacio de trabajo los objetos que se le pasan como
argumento.

rm(x)

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 18


Serie de apuntes de clase IFE N°03 noviembre del 2022

El directorio de trabajo es donde RGui salva por defecto los resultados y también de
donde intenta por defecto leer los ficheros. Para saber cuál es el directorio de trabajo
hay que ejecutar

getwd()

Es recomendable separar en diferentes directorios los diferentes proyectos. La


función setwd() permite modificar el directorio de trabajo, pasando como
argumento a la función el nombre del nuevo directorio escrito entre comillas. Por
ejemplo:
setwd("F:/Simulacion")
La función save.image salva el espacio de trabajo completo a un fichero.

Para salvar únicamente algunos objetos puede emplearse save().

La función load() carga en la sesión actual el espacio de trabajo almacenado en el


fichero que se le pasa como argumento.

Las funciones savehistory() y loadhistory () permiten guardar el fichero y los


comandos de la sesión y cargar dicha historia desde un fichero.

3.4 Algunas características importantes de R

3.4.1 El sistema R está dividido en dos partes conceptuales:

1. El sistema base de R, que es el que puedes bajar de CRAN


2. En todo lo demás, la funcionalidad de R consta de paquetes modulares. El
sistema base de R contiene el paquete básico que se requiere para su
ejecución y la mayoría de las funciones fundamentales. Los otros paquetes
contenidos en la “base” del sistema incluye a utils, stats, datasets,
graphics, grDevices, grid, tools, parallel, compiler, splines, tcltk, stats.
La capacidad de gráficos de R es muy sofisticada y mejor que la de la mayoría de
los paquetes estadísticos. R cuenta con varios paquetes gráficos especializados, por
ejemplo, hay paquetería para graficar, crear y manejar los shapefiles, para hacer

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 19


Serie de apuntes de clase IFE N°03 noviembre del 2022

contornos sobre mapas en distintas proyecciones, graficado de vectores, contornos,


etc. También existen paqueterías que permiten manipular y crear datos en distintos
formatos como netCDF, Matlab, Excel entre otros. Cabe señalar que, además del
paquete base de R, existen más de 4000 paquetes en CRAN (http://cran.r-
project.org) 7, que han sido desarrollados por usuarios y programadores alrededor
del mundo, esto sin contar los paquetes disponibles en redes personales.

R es muy útil para el trabajo interactivo, pero también es un poderoso lenguaje de


programación para el desarrollo de nuevas herramientas, por ejemplo, rclimdex,
cliMTA-R, etc. Otra ventaja muy importante es que tiene una comunidad muy activa,
por lo que, haciendo las preguntas correctas rápidamente encontrarás la solución a
los problemas que se te presenten en el ámbito de la programación con R. Estas
características han promovido que el número de sus usuarios en el área de las
ciencias se incremente enormemente.
Al ser software libre 8 lo hace un lenguaje atractivo, debido a que no hay que
preocuparse por licencias y cuenta con la libertad que garantiza GNU. Es decir, con
R se tiene la libertad de:
• Correrlo para cualquier propósito
• Estudiar cómo trabaja el programa y adaptarlo a sus necesidades, pues se
tiene acceso al código fuente
• Redistribuir copias
• mejorar el programa y liberar sus mejoras al público en general.

7
Por sus siglas en inglés: The Comprehensive R Archive Network. Su página Web es:
http://cran.rproject.org/.

8 Software libre» es el software que respeta la libertad de los usuarios y la comunidad. A


grandes rasgos, significa que los usuarios tienen la libertad de ejecutar, copiar, distribuir,
estudiar, modificar y mejorar el software. Es decir, el «software libre» es una cuestión de
libertad, no de precio. Para entender el concepto, piense en «libre» como en «libre
expresión», no como en «barra libre». En inglés, a veces en lugar de «free software» decimos
«libre software», empleando ese adjetivo francés o español, derivado de «libertad», para
mostrar que no queremos decir que el software es gratuito.

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 20


Serie de apuntes de clase IFE N°03 noviembre del 2022

Es importante mencionar que, debido a su estructura, R consume muchos recursos


de memoria, por lo tanto, si se utilizan datos de tamaño enorme, el programa se
alentaría o, en el peor de los casos, no podría procesarlos. En la mayoría de los
casos, sin embargo, los problemas que pudieran surgir con referencia a la lentitud en
la ejecución del código tienen solución, principalmente teniendo cuidado de
vectorizar el código; ya que esto permitiría particionarlo y aprovechar en
procesamiento paralelo en equipos con multinúcleos ( Sergio Santana & Mateos
Farfán, 2014).

4. Funciones básicas de R

En esta sección se presentará lo que es una función y se mostrarán varias funciones


básicas que son útiles para realizar diversas tareas.

FIGURA N° 11

Figura extraída de Hernández & Usuga (2020)

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 21


Serie de apuntes de clase IFE N°03 noviembre del 2022

En la figura de arriba se muestra una ilustración de lo que es una función o máquina


general. Hay unas entradas (inputs) que luego son procesadas dentro de la caja
para generar unas salidas (outputs). Un ejemplo de una función o máquina muy
común en nuestras casas es la licuadora. Si a una licuadora le ingresamos leche,
fresas, azúcar y hielo, el resultado será un delicioso jugo de fresa.

5. Operaciones básicas

La forma correcta de almacenar valores es a través de una asignación la cual se


realiza
especificando el símbolo < −. Del lado izquierdo del símbolo se especifica el nombre
de la variable y del lado derecho se introduce el valor u operación.
Se puede trabajar con una gran cantidad de operadores matemáticos que utiliza R y
que permite realizar cálculos matemáticos, por mencionar algunos, se pueden
observar en el Cuadro Nº1.

Cuadro N. º1:
Operadores matemáticos

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 22


Serie de apuntes de clase IFE N°03 noviembre del 2022

Asignar un valor a cierta cantidad de variables, por ejemplo: a una variable w el valor
3, a la variable y el valor 7 y a la variable z el valor 90, a una variable suma la adición
de las variables anteriores y fi te obtendremos la raíz cuadrada de la variable suma,
guardándola en una variable con el nombre raíz. A continuación, se muestra el
ejemplo en R:

w <- 3 # Para evaluar la instrucción se debe presionar la tecla ENTER.


w # Para observar el valor de la variable nombra la variable.
[1] 3
y <- 7
y
[1] 7
z <- 90
z
[1] 90

suma <- w + y + z
> suma
[1] 100
12
raiz <- sqrt(suma)
raíz
[1] 10
pi
cos(30)
acos(0.1542514)
choose(30,20)

a <- "Cálculo"
a
[1] "Cálculo"
b <- "Actuarial"

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 23


Serie de apuntes de clase IFE N°03 noviembre del 2022

b
[1] "Actuarial"

En la primera línea se observa el símbolo numeral (#), el cual permite comentar el


código, para tomar notas de interés. Aunque las variables utilizadas son variables
denominadas meta-sintácticas lo que sígnica que son nombres de relleno, se
recomienda asignarlas con nombres pertinentes. En R también se pueden
almacenar cadenas de caracteres como se muestra en el siguiente ejemplo:

Para obtener un listado o desplegado de las variables que han sido definidas en la
sesión se debe de escribir el comando ls().

ls()
[1] "a" "b" "raiz" "suma" "w" "y" "z"

6. Estadística con R

Muchas personas utilizan R como un sistema estadístico debido a que posee un


entorno en el que se han implementado muchas técnicas estadísticas, tanto clásicas
como modernas. Algunas están incluidas en el entorno base de R y otras se
acompañan en forma de bibliotecas (packages). El hecho de distinguir entre ambos
conceptos es fundamentalmente una cuestión histórica. Junto con R se incluyen
ocho bibliotecas (llamadas bibliotecas estándar) pero otras muchas están
disponibles a través de Internet en CRAN (http://www.r-project.org).
Debido a que muchas técnicas estadísticas, desde las clásicas hasta las más
actuales, están disponibles en R, sin embargo los usuarios necesitarán trabajar un
poco para poder encontrarlas.

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 24


Serie de apuntes de clase IFE N°03 noviembre del 2022

6. Objetos – Tipos

6.1 Objetos

En términos generales, todos los elementos que utiliza R son objetos, es decir para
R: un valor numérico, un vector, una función, una base de datos, un gráfico etc.,
todos son tratados como objetos. Para realizar un uso eficiente de R es importante
comprender y aprender a manipular bien las distintas clases de objetos que maneja
el programa. En esta sección nos enfocaremos en aquellos objetos que R utiliza
para analizar los datos: valores, vectores, matrices, dataframes, series temporales y
listas.

R utiliza la programación orientada a objetos 9. Ello significa que una misma


función hace cosas distintas según la clase del objeto que recibe como argumento,
pudiendo incluso no hacer nada (o producir un error) si se le pasan argumentos de
una clase inadecuada (González & González, 2000).

6.1.1 Vectores

Las clases atómicas de datos no se manejan de manera individual sino que el


lenguaje ha creado implícitamente es de vectores de longitud 1, y son esos los que
se han asignado a las variables.

Un vector es una secuencia ordenada de datos, los cuales han de ser del mismo
tipo, es decir todos deben de ser números, caracteres, cadenas de caracteres,

9
La Programación Orientada a Objetos (POO) es un paradigma de programación, es decir, un modelo
o un estilo de programación que nos da unas guías sobre cómo trabajar con él. Se basa en el concepto
de clases y objetos. Este tipo de programación se utiliza para estructurar un programa de software en
piezas simples y reutilizables de planos de código (clases) para crear instancias individuales de
objetos.

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 25


Serie de apuntes de clase IFE N°03 noviembre del 2022

valores lógicos, etc. Los tipos de datos que se pueden almacenar en un vector, se
destacan los siguientes ( Rivera Loredo, 2018):

• logical (lógicos: TRUE, verdadero, o FALSE, falso)


• integer (números enteros)
• numeric (números reales)
• character (palabras)

6.1.2 Creación de un vector

La forma correcta de almacenar un conjunto de datos, es a través de una


asignación utilizando el comando c (combine), donde dicha lista de números se
almacena bajo este nombre, y así mismo este se utiliza para referirse a los datos
que almacena, la asignación se realiza especificando el símbolo <− (Matías, 2009,
p.29).

La función vector, que tiene dos argumentos mode y length, crean un vector cuyos
elementos pueden ser de tipo numérico, lógico o carácter dependiendo del
argumento especificado en mode (0, FALSE o “” respectivamente).
vector(mode = "logical", length = 0)
Ejemplo:
v <- vector("integer", 0)
v # Un vector de enteros sin elementos
## integer(0)
w <- vector("numeric", 3)
w # Un vector de tres ceros
## [1] 0 0 0
u <- vector("logical", 5)
u # Un vector de 5 FALSE
## [1] FALSE FALSE FALSE FALSE FALSE

vector <- c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)


vector

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 26


Serie de apuntes de clase IFE N°03 noviembre del 2022

Si se desea crear un vector de letras, palabras o cadenas de caracteres llamadas


string, se tiene que nombrar cada cadena de caracteres entre comillas de manera
obligatoria.
vectorletra <- c("a", "b", "c", "d", "e")
vectorletra
[1] "a" "b" "c" "d" "e"
vectorpalabra <- c("Cálculo", "Actuarial", "en", "R")
vectorpalabra
[1] "Cálculo" "Actuarial" "en" "R"

Se puede facilitar la creación de vectores podemos utilizar c(a: b) para datos de


manera consecutiva, el comando seq(a, b, by = p) de manera aritmética, donde a es
el primer elemento, b es el último elemento y p es la diferencia de cada elemento.

w <- c(0:10)
w
[1] 0 1 2 3 4 5 6 7 8 9 10
y <- seq(0, 100, by = 10)
y
[1] 0 10 20 30 40 50 60 70 80 90 100

Para crear vectores de otro tipo se sugiere la ayuda de R. Las siguientes funciones
tienen exactamente el mismo efecto y tienen un solo argumento (la longitud del
vector): numeric(), logical(), y character(). El primer tipo de objeto que
manejaremos es el vector (colección ordenada de elementos del mismo tipo).
Podemos escribir vectores de varias maneras, utilizando la opción “:” (el vector
comienza en el primer número suministrado y analiza en el segundo o en un

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 27


Serie de apuntes de clase IFE N°03 noviembre del 2022

numero anterior sin sobrepasarlo, tanto en orden ascendente como descendente)


con mediante la función de concatenación “c( )".
1:10

[1] 1 2 3 4 5 6 7 8 9 10

10:1

[1] 10 9 8 7 6 5 4 3 2 1

Un vector se puede modificar fácilmente usando el editor de datos que incorpora R.


Para hacerlo, se aplica la función _x al vector que queremos editar. R abre el vector
en una nueva ventana de edición. Mientras esta ventana este abierta, será la
ventana activa de R y no se podrá volver a la sesión de R hasta que se cierre. Los
cambios que se realicen en el vector con el editor de datos se guardarán cuando se
cierre esta ventana.

z <- c(2, 4, 6, 8, 10, 12, 14, 16, 18, 20)


fix(z)

Tenemos, además, formas adicionales de crear vectores. Una de las más comunes
es utilizando la función “seq(a, b, c)”, que genera secuencias de números reales,
donde el primer elemento indicaría el principio de la secuencia, el segundo el final y
el tercero el incremento que se debe usar para generar la secuencia. Aunque
también podemos poner la función de estas formas “seq (length = d, from = a, to =
b)” o “seq(by = c, f rom = a, to = b)” siendo “d” la longitud del vector. Ejemplo:

seq(10) #mismo efecto que 1:10

seq(3,10) #mismo efecto que 3:10

seq(1,10, by=3) #saltando de 3 en 3

rep(1:4,2) #Vectores Constructores (repetimos 1:4 dos veces).

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 28


Serie de apuntes de clase IFE N°03 noviembre del 2022

rep(1:4,each=2) #repetimos 1:4 dos veces, #intercalando el resultado.

Acceso a datos:

datos #vector completo


datos [1] #primer dato
datos [-4] #todo menos el cuarto dato
datos [c(1,3,5)] #posiciones 1, 3 y 5
datos [3:5] #posiciones 3 a 5
v <- datos>1 #vector lógico con true en la posición i sii datos[i]>1
datos[v] #posiciones con true en el vector v
o De manera análoga, podemos modificar los datos:
datos[1] <- 23

Asimismo, la función vector tiene otras funciones complementarias con las cuales
también se puede trabajar:

as.vector: Es una función una genérica e intenta coaccionar su argumento en un


vector del modo (el predeterminado es coaccionar a cualquier modo vectorial más
conveniente): si el resultado es atómico todos los atributos se eliminan.
is.vector: Es una función una genérica y devuelve TRUE si x es un vector del
modo especificado que no tiene atributos que no sean nombres. De lo contrario
devuelve FALSE.

6.1.3 Generación de Niveles

La función “gl()” (generador de niveles) genera series regulares de factores. Tiene


la forma “gl(a, b)” donde “a” es el número de niveles (o clases) y “b” es el número de
réplicas en cada nivel. Se pueden usar dos opciones: “length” para especificar el
número de datos producidos, y “labels” para especificar los nombres de los factores.
# Repetimos los dos niveles 6 veces con la etiqueta Hombre y Mujer
> gl(2, 6, labels = c("Hombre", "Mujer")).

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 29


Serie de apuntes de clase IFE N°03 noviembre del 2022

Finalmente, “expand.grid( )” crea una tabla de datos con todas las combinaciones
posibles de los elementos de los vectores o factores que proporcionemos como
argumentos.

> grid(edad=c(36,25), peso=c(75,60), sexo=c("Hombre","Mujer"))


# Crea todas las combinaciones posibles
R puede escribir vectores con caracteres o números, pero siempre entiende los
elementos como si fuesen del mismo tipo.
Un vector siempre está formado por elementos del mismo tipo, no pueden mezclarse
números y cadenas de caracteres (se transformaría en cadenas de caracteres).
Del mismo modo, si mezcla números reales y complejos, se entenderían como
complejos.

c("Hola", "Adios")

c(1, 1+2i)

c(1-1i, 2)

dias.semana=c("Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Domingo")

dias.semana

Una elección de R es que podemos asignar nombres a los elementos de un vector


mediante la función “names” (también se podría utilizar para nombrar cualquier
objeto).

x < - 1:7

names(x)<- -c("Lunes","Martes","Miercoles","Jueves","Viernes","Sabado","Domingo")

Lunes Martes Miercoles Jueves Viernes Sabado Domingo


1 2 3 4 5 6 7

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 30


Serie de apuntes de clase IFE N°03 noviembre del 2022

También podemos conocer o cambiar el modo o tipo de los elementos que forman el
vector mediante la función “mode” (tomaría los valores: logical, numeric, complex,
character, null, list, function, graphics, expression, name, frame, raw y unknown).

6.1.4 Factores

Un factor es un vector de cadenas de caracteres que sirve para representar datos


categóricos, aunque no solo incluye estos valores, sino que también los diferentes
niveles posibles de esta variable. La función “factor” se utiliza para codificar un
vector como un factor. Creando tantos niveles como le indiquemos.
Conceptualmente, los factores son variables en R que toman un número limitado de
valores diferentes; tales variables se refieren a menudo como variables categóricas.
Uno de los usos más importantes de los factores es el modelado estadístico; dado
que las variables categóricas entran en modelos estadísticos de forma diferente a
las variables continuas, el almacenamiento de datos como factores asegura que las
funciones de modelado traten dichos datos correctamente.

Los factores en R se almacenan como un vector de valores enteros con un conjunto


correspondiente de valores de caracteres que se utilizarán cuando se muestre el
factor.
La función factor se utiliza para crear un factor. El único argumento requerido para
factor es un vector de valores que será devuelto como un vector de valores de
factor. Las variables numéricas y de carácter se pueden convertir en factores, pero
los niveles de un factor siempre serán valores de carácter. Puedes ver los niveles
posibles para un factor a través del comando levels.

Para cambiar el orden en el que se mostrarán los niveles de su orden ordenado por
defecto, el argumento “levels =” puede recibir un vector de todos los valores posibles
de la variable en el orden que desee. Si el pedido también debe utilizarse al realizar

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 31


Serie de apuntes de clase IFE N°03 noviembre del 2022

comparaciones, utilice el argumento opcional ordenado = VERDADERO. En este


caso, el factor se conoce como un factor ordenado.
Los niveles de un factor se utilizan cuando se muestran los valores del factor. Se
puede cambiar estos niveles en el momento en que crea un factor pasando un
vector con los nuevos valores a través del argumento labels =. Tenga en cuenta que
esto realmente cambia los niveles internos del factor y para cambiar las etiquetas de
un factor después de que se ha creado, se utiliza la forma de asignación de la
función de niveles. Para ilustrar este punto, considere un factor tomando valores
enteros que queremos mostrar como números romanos.

# Tres niveles
> factor(1:3)
[1] 1 2 3
Levels: 1 2 3

El atributo “levels” indica los valores numéricos posibles (es decir los caracteres
diferentes que aparecen en el vector). Se utiliza, por ejemplo, para dividir una
población en grupos.
La función “factor” se utiliza para codificar un vector como un factor. Creando tantos
niveles como le indiquemos.

# Cinco niveles
factor (1:3, levels=1:5)
[1] 1 2 3
Levels: 1 2 3 4 5
# Un vector de dos elementos con cuatro niveles
aa<-factor(c(2,3), levels=2:5)

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 32


Serie de apuntes de clase IFE N°03 noviembre del 2022

aa
[1] 2 3
Levels: 2 3 4 5

levels(aa)
> levels(aa)
[1] "2" "3" "4" "5"
factor(c("Mujer","Mujer","Hombre"))
[1] Mujer Mujer Hombre
Levels: Hombre Mujer

Con la opción “exclude”, por ejemplo “factor(1: 5, exclude = 4)” excluimos los
valores de los niveles que necesitemos y con “ordered” especificamos si los niveles
del factor están ordenados.

# Cinco niveles excluyendo el cuarto

factor(1:5, exclude=4)

[1] 1 2 3 <NA> 5
Levels: 1 2 3 5

Un error muy común es utilizar variables aparentemente numéricas en análisis


estadísticos, por ejemplo, números telefónicos o códigos postales. Por ello antes de
utilizar un vector con caracteres cualitativos o cuantitativos dentro de un análisis,
hace falta convertirlo en un factor.

data = c(1,2,2,3,1,2,3,3,1,2,3,3,1)
fdata = factor(data)
fdata

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 33


Serie de apuntes de clase IFE N°03 noviembre del 2022

[1] 1 2 2 3 1 2 3 3 1 2 3 3 1
Levels: 1 2 3

rdata = factor(data,labels=c("I","II","III"))

rdata

[1] I II II III I II III III I II III III I

Levels: I II III

Para convertir el factor predeterminado fdata a números romanos, usamos la forma


de asignación de la función levels:

levels(fdata) = c('I','II','III')

fdata

[1] I II II III I II III III I II III III I

Levels: I II III

Como ejemplo de un factor ordenado, considere los datos que consisten en los
nombres de meses:

mons=c("March","April","January","November","January", "September",
"October","September","November","August","January","November",

"November","February","May","August","July","December","August",

"August","September","November", "February","April")

mons = factor(mons)

table(mons)

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 34


Serie de apuntes de clase IFE N°03 noviembre del 2022

mons

- April August December February January July

2 4 1 2 3 1

March May November October September

1 1 5 1 3

Aunque los meses claramente tienen una ordenación, esto no se refleja en la salida
de la función de tabla. Además, los operadores de comparación no son compatibles
con factores no ordenados. La creación de un factor ordenado resuelve estos
problemas:

mons = factor(mons,levels=c("January","February","March", "April", "May",

"June","July","August","September", "October", "November" ,"December"),

ordered=TRUE)

Si digitamos en el siguiente comando tenemos

mons[1] < mons[2]

[1] TRUE

table(mons)

mons

January February March April May June

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 35


Serie de apuntes de clase IFE N°03 noviembre del 2022

3 2 1 2 1 0

July August September October November December

1 4 3 1 5 1

fert = c(10,20,20,50,10,20,10,50,20)

fert = factor(fert,levels=c(10,20,50),ordered=TRUE)

fert

[1] 10 20 20 50 10 20 10 50 20

Levels: 10 < 20 < 50

Si queremos calcular la media de los valores numéricos originales de la variable fert,


tendríamos que convertir los valores usando la función levels:

mean(fert)

[1] NA

Warning message:

argument is not numeric or logical:

returning NA in: mean.default(fert)

> mean(as.numeric(levels(fert)[fert]))

[1] 23.33333

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 36


Serie de apuntes de clase IFE N°03 noviembre del 2022

6.1.4 Indexación de Factores

La indexación del valor devuelto de la función levels es la forma más confiable para
convertir los factores numéricos a sus valores numéricos originales. Cuando se crea
primero un factor, todos sus niveles se almacenan junto con el factor y si se extraen
subconjuntos del factor, se conservarán todos los niveles originales. Esto puede
crear problemas al construir matrices de modelos y puede o no ser útil al mostrar los
datos usando, digamos, la función de tabla. Como ejemplo, considere una muestra
aleatoria del vector de letras, que es parte de la distribución de base R.

lets = sample(letters,size=100,replace=TRUE)

lets = factor(lets)

table(lets[1:5])

abcdefghijklmnopqrstuvwxyz

10000000001000001010000001

A pesar de que sólo cinco de los niveles realmente se representan, la función de


tabla muestra las frecuencias para todos los niveles de los factores originales. Para
cambiar esto, podemos simplemente usar otra llamada para factor

table(factor(lets[1:5]))

akqsz

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 37


Serie de apuntes de clase IFE N°03 noviembre del 2022

11111

Para excluir ciertos niveles de aparecer en un factor, el argumento excluir = se


puede pasar al factor. Por defecto, el valor faltante (NA) se excluye de los niveles de
factor; para crear un factor que incluya valores perdidos de una variable numérica,
use exclude = NULL.

Se debe tener cuidado al combinar variables que son factores, porque la función c
interpretará los factores como enteros. Para combinar los factores, primero deben
ser convertidos de nuevo a sus valores originales (a través de la función de los
niveles), luego catenated y convertido a un nuevo factor:

l1 = factor(sample(letters,size=10,replace=TRUE))

l2 = factor(sample(letters,size=10,replace=TRUE))

l1

[1] o b i v q n q w e z

Levels: b e i n o q v w z

l2

[1] b a s b l r g m z o

Levels: a b g l m o r s z

l12 = factor(c(levels(l1)[l1],levels(l2)[l2]))

l12

[1] o b i v q n q w e z b a s b l r g m z o

Levels: a b e g i l m n o q r s v w z

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 38


Serie de apuntes de clase IFE N°03 noviembre del 2022

Existen funciones que nos permiten convertir diferentes clases de objetos a modos
diferentes. Una situación frecuente es la conversión de factores a valores numéricos.
En este caso, R realiza la conversión usando las expresiones “as.numeric” y
“as.character”. Para realizar la conversión manteniendo los valores literales del
factor, primero se debe convertir a carácter y después a numérico. Este
procedimiento puede ser bastante útil si en un archivo una variable numérica
también tiene valores no-numéricos.

c.p<-c(18002,18194,18199)

c.p

[1] 18002 18194 18199

mode(c.p)

[1] "numeric"

codigo.postal<-factor(c.p)

codigo.postal

[1] 18002 18194 18199

Levels: 18002 18194 18199

c.p<-c(18002,18194,18199)

c.p

[1] 18002 18194 18199

mode(c.p)

[1] "numeric"

codigo.postal<-factor(c.p)

codigo.postal

[1] 18002 18194 18199

Levels: 18002 18194 18199

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 39


Serie de apuntes de clase IFE N°03 noviembre del 2022

f<-factor(c(1,3))

as.numeric(f)

[1] 1 2

# Para guardarlos primero lo convertimos en carácter y luego en numerico

as.numeric(as.character(f))

[1] 1 3

6.1.6 Uso de las listas

Una lista se construye con la función list que devuelve un objeto de tipo lista con
tantos componentes como argumentos se le suministren y es utilizado para devolver
el resultado de una función.
Una lista se crea de manera similar a un marco de datos con la función list. No existe
ninguna limitación en el tipo de objetos que se pueden incluir. A diferencia de
data.frame(), los nombres de los objetos no se toman por defecto; tomando los
vectores x y y del ejemplo anterior:

dias.semana

[1] "Lunes" "Martes" "Miercoles" "Jueves" "Viernes" "Sabado" "Domingo"

list(A=dias.semana,B=1:7)

[1] "Lunes" "Martes" "Miercoles" "Jueves" "Viernes" "Sabado" "Domingo"

[1] 1 2 3 4 5 6 7

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 40


Serie de apuntes de clase IFE N°03 noviembre del 2022

Puede referirse a cada uno de los elementos de la lista de dos formas distintas: Si
tiene nombre, como en este caso, mediante el nombre de la lista, el símbolo $ y el
nombre del elemento. En cualquier caso, siempre puede referirse a él mediante el
índice de posición entre dobles corchetes.

list(A=dias.semana,B=1:7)$A

[1] "Lunes" "Martes" "Miercoles" "Jueves" "Viernes" "Sabado" "Domingo"

list(A=dias.semana,B=1:7)$B

[1] 1 2 3 4 5 6 7

La diferencia fundamental entre las tres formas, [, [[ y $ es que la primera permite


seleccionar varios elementos, en tanto que las dos últimas solo permiten seleccionar
uno. Además, $ no permite utilizar índices calculados. El operador [[necesita que se
le indiquen todos los índices (ya que debe seleccionar un sólo elemento) en tanto
que [permite obviar índices, en cuyo caso se seleccionan todos los valores posibles.
Si se aplican a una lista, [[devuelve el elemento de la lista especificado y [devuelve
una lista con los elementos especificados.

7. Operaciones con Matrices

Las matrices o variables indexadas (Arrays) son generalizaciones


multidimensionales de vectores. De hecho, son vectores indexados por dos o más
índices y que se imprimen de modo especial. Para crearlas utilizamos la función
“matrix”.
Los parámetros principales de esta función son: data (vector que contiene los
valores que formarán la matriz), nrow (número de filas), ncol (número de columnas).

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 41


Serie de apuntes de clase IFE N°03 noviembre del 2022

# Tenemos que tener en cuenta el tamaño de la matriz

m2<-matrix(1:4,3)

Warning message:

In matrix(1:4, 3) :

La longitud de los datos [4] no es un submúltiplo o múltiplo del número de filas [3] en
la matriz
Si quiere dar nombres a las columnas (o a las filas) puedes hacerlo asignando
valores al parámetro “dim-names”, lista con los nombres de las filas y las columnas.
Las componentes de la lista deben tener longitud o ser un vector de cadenas de
caracteres con la misma longitud que la dimensión de la matriz.

# la longitud de los datos [4] no es un subm´ultiplo o m´ultiplo del n´umero de filas


[3] en la matriz
m2<-matrix(1:4,2)
m2
[,1] [,2]
[1,] 1 3
[2,] 2 4
m2<-matrix(1:8,4)
m2
[,1] [,2]
[1,] 1 5
[2,] 2 6
[3,] 3 7
[4,] 4 8

# Hemos formado una matriz con el vector 1:8 de cuatro filas


m3<-matrix(1:8,ncol=4)
m3
m3<-matrix(1:8,ncol=4)
m3

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 42


Serie de apuntes de clase IFE N°03 noviembre del 2022

[,1] [,2] [,3] [,4]


[1,] 1 3 5 7
[2,] 2 4 6 8
# Hemos formado una matriz con el vector 1:8 de cuatro columnas

# Renombramos las columnas

matrix(1:9,3,3,dim=list(c(),c("A1","A2","A3")))

matrix(1:9,3,3,dim=list(c(),c("A1","A2","A3")))

A1 A2 A3

[1,] 1 4 7

[2,] 2 5 8

[3,] 3 6 9

> # Renombramos las filas

> matrix(1:9,3,3,dim=list(c("a1","a2","a3"),c()))

[,1] [,2] [,3]

a1 1 4 7

a2 2 5 8

a3 3 6 9

# Renombramos filas y columnas

matrix(1:9,3,3,dim=list(c("a1","a2","a3"),c("A1","A2","A3")))

A1 A2 A3

a1 1 4 7

a2 2 5 8

a3 3 6 9

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 43


Serie de apuntes de clase IFE N°03 noviembre del 2022

Una operación muy común es hacer referencia a una submatriz o a un elemento de


la matriz, se realiza indicando los índices de los elementos a los que se hace
referencia. Podemos hacer referencia a una fila (vector) mediante matriz [i,], con i el
índice de la fila que queremos mostrar, o a una columna mediante matriz [, j] con j el
índice de la columna que queremos mostrar. Si lo que queremos es un elemento
concreto indicamos los dos índices matrices [i, j], por ejemplo, con matriz [2, 1], que
da el valor 2º de la 1a variable que coincide con el 1o valor de la 2a variable. Un
argumento útil en estas operaciones es la variable lógica “byrow” que indica si la
matriz debe construirse por filas o por columnas (el valor predeterminado es F).
# Introducimos los datos, peso, altura, edad.

datos<-c(70,108,82,1.80,2.06,1.98,27,19,32)

mm<-matrix(datos,ncol=3,dimnames=list(c("Peso","Altura","Edad"),c()),byrow=T) > #

Con byrow=T le hemos dicho que lea primero por filas

mm

datos<-c(70,108,82,1.80,2.06,1.98,27,19,32)
mm<-matrix(datos,ncol=3,dimnames=list(c("Peso","Altura","Edad"),c()),byrow=T)
mm
[,1] [,2] [,3]
Peso 70.0 108.00 82.00
Altura 1.8 2.06 1.98
Edad 27.0 19.00 32.00
mm
[,1] [,2] [,3]

Peso 70.0 108.00 82.00


Altura 1.8 2.06 1.98
Edad 27.0 19.00 32.00

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 44


Serie de apuntes de clase IFE N°03 noviembre del 2022

mm<-matrix(datos,ncol=3,dimnames=list(c("Peso","Altura","Edad"),c()),byrow=F)
# Con byrow=F le hemos dicho que lea primero por columnas, con lo que no se
muestra correctamente
mm
[,1] [,2] [,3]
Peso 70 1.80 27
Altura 108 2.06 19
Edad 82 1.98 32

Podemos realizar operaciones con matrices de la misma forma que lo hacíamos con
los vectores, es decir componente a componente: suma, resta, multiplicación por
escalares, multiplicación elemento a elemento, división elemento a elemento,
exponenciación, división entera y módulo, que se realizan mediante los símbolos: +,
- , *, /, ˆ, % / % y % %.

M1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
M2<-matrix((1:6)^2,2,3)
M2
[,1] [,2] [,3]
[1,] 1 9 25
[2,] 4 16 36
M1+M2
[,1] [,2] [,3]
[1,] 2 12 30
[2,] 6 20 42

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 45


Serie de apuntes de clase IFE N°03 noviembre del 2022

Aunque en principio no están relacionadas las matrices con las tablas de frecuencias
a partir de factores, podemos utilizar las primeras para expresar las segundas.
Hemos visto que un factor define una tabla de entrada simple. Del mismo modo, dos
factores definen una tabla de doble entrada, y así sucesivamente. La función “table(
)” calcula tablas de frecuencias a partir de factores de igual longitud. Si existen k
argumentos categóricos, el resultado será una variable k-indexada, que contiene la
tabla de frecuencias.

a=c(1,3,2)
b=1.3
b=1:3
table(a,b)

8. Arrays (Variable Multiindexada)

La generalización de los vectores y matrices son las variables multiindexadas,


denominadas arrays, y de las cuales son casos particulares los vectores y matrices.
Una variable indexada (array) es una colección de datos, por ejemplo numéricos,
indexados por varios índices. R permite crear y manipular variables indexadas, por
ejemplo para crear una variable multiindexada se utiliza la función “array (data, dim,
dimnames)” donde “dim” es un vector de dimensiones. Además, podemos hacer
referencia a cualquier subconjunto de la misma, de modo similar a las matrices.

9. Data frames

Los data frames son estructuras de datos de dos dimensiones (rectangulares) que
pueden contener datos de diferentes tipos, por lo tanto, son heterogéneas. Esta

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 46


Serie de apuntes de clase IFE N°03 noviembre del 2022

estructura de datos es la más usada para realizar análisis de datos y seguro te


resultará familiar si has trabajado con otros paquetes estadísticos.

Podemos entender a los data frames como una versión más flexible de una matriz.
Mientras que en una matriz todas las celdas deben contener datos del mismo tipo,
los renglones de un data frame admiten datos de distintos tipos, pero sus columnas
conservan la restricción de contener datos de un sólo tipo.
En términos generales, los renglones en un data frame representan casos,
individuos u observaciones, mientras que las columnas representan atributos, rasgos
o variables.
Para crear un data frame usamos la función data.frame(). Esta función nos pedirá
un número de vectores igual al número de columnas que deseemos. Todos los
vectores que proporcionemos deben tener el mismo largo.
Esto es muy importante: Un data frame está compuesto por vectores. Más
adelante se hará evidente porque esta característica de un data frame es
sumamente importante y también, cómo podemos sacarle provecho.
Además, podemos asignar un nombre a cada vector, que se convertirá en el nombre
de la columna. Como todos los nombres, es recomendable que este sea claro, no
ambiguo y descriptivo.

mi_df <- data.frame(


"entero" = 1:4,
"factor" = c("a", "b", "c", "d"),
"numero" = c(1.2, 3.4, 4.5, 5.6),
"cadena" = as.character(c("a", "b", "c", "d")))

mi_df
## entero factor numero cadena
## 1 1 a 1.2 a
## 2 2 b 3.4 b
## 3 3 c 4.5 c

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 47


Serie de apuntes de clase IFE N°03 noviembre del 2022

## 4 4 d 5.6 d
# Podemos usar dim() en un data frame
dim(mi_df)
## [1] 4 4
# El largo de un data frame es igual a su número de columnas
length(mi_df)
## [1] 4
# names() nos permite ver los nombres de las columnas
names(mi_df)
## [1] "entero" "factor" "numero" "cadena"
# La clase de un data frame es data.frame
class(data.frame)
## [1] "function"

Si los vectores que usamos para construir el data frame no son del mismo largo, los
datos no se reciclaran. Se nos devolverá un error.
data.frame(
"entero" = 1:3,
"factor" = c("a", "b", "c", "d"),
"numero" = c(1.2, 3.4, 4.5, 5.6),
"cadena" = as.character(c("a", "b", "c", "d"))
)
## Error in data.frame(entero = 1:3, factor = c("a", "b", "c", "d"), numero = c(1.2, :
arguments imply differing number of rows: 3, 4
También podemos coercionar esta matriz a un data frame.

Creamos una matriz.

matriz <- matrix(1:12, ncol = 4)


Usamos as.data.frame() para coercionar una matriz a un data frame.
df <- as.data.frame(matriz)

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 48


Serie de apuntes de clase IFE N°03 noviembre del 2022

Verificamos el resultado

class(df)
## [1] "data.frame"
# Resultado
df
## V1 V2 V3 V4
## 1 1 4 7 10
## 2 2 5 8 11
## 3 3 6 9 12

9.3.1 Propiedades de un data frame


Al igual que con una matriz, si aplicamos una operación aritmética a un data frame,
esta se vectorizará.
Los resultados que obtendremos dependerán del tipo de datos de cada columna. R
nos devolverá todas las advertencias que ocurran como resultado de las
operaciones realizadas, por ejemplo, aquellas que hayan requerido una coerción.

mi_df <- data.frame(


"entero" = 1:4,
"factor" = c("a", "b", "c", "d"),
"numero" = c(1.2, 3.4, 4.5, 5.6),
"cadena" = as.character(c("a", "b", "c", "d"))
)

mi_df * 2
## Warning in Ops.factor(left, right): '*' not meaningful for factors

## Warning in Ops.factor(left, right): '*' not meaningful for factors


## entero factor número cadena
## 1 2 NA 2.4 NA
## 2 4 NA 6.8 NA
## 3 6 NA 9.0 NA
## 4 8 NA 11.2 NA

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 49


Serie de apuntes de clase IFE N°03 noviembre del 2022

índice de imágenes
FIGURA N° 1 ............................................................................................................................................ 6
FIGURA N° 2 ............................................................................................................................................ 6
FIGURA N° 3 ............................................................................................................................................ 7
FIGURA N° 4 ............................................................................................................................................ 8
FIGURA N° 5 ............................................................................................................................................ 8
FIGURA N° 6 ............................................................................................................................................ 9
FIGURA N° 7 .......................................................................................................................................... 10
FIGURA N° 8 .......................................................................................................................................... 10
FIGURA N° 9 .......................................................................................................................................... 11
FIGURA N° 10 ........................................................................................................................................ 12
FIGURA N° 11 ........................................................................................................................................ 21

Bibliografía

Sergio Santana, J., & Mateos Farfán, E. (2014). El arte de programar en R:Un lenguaje para la
estadística. UNESCO, México. Instituto Mexicano de Tecnología del Agua.

Paradis, E. (2010). R para principiantes. Universit Montpellier II. París: Institut des Sciences de
l’E´volution.

Rivera Loredo, C. (2018). Elementos de Cálculo Actuarial con R. Centro Universitario UAEM, Valle de
México, Atizapán de Zaragoza.

Urquía Moraleda, A., & Martín Villalba, C. (2006). Introducción al análisis de datos con R. Madrid,
España.

González, A., & González, S. (2000). Introdución al R. Notas sobre R: Un entorno de programación
para Análisis de Datos y Gráficos. cran.r-project.org.

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 50


Serie de apuntes de clase IFE N°03 noviembre del 2022

Hernández, F., & Usuga, O. (2020). Manual de R. Obtenido de https://fhernanb.github.io/Manual-de-


R/

IMF Blog Tecnología. (2022). IMF Blog Tecnología. Obtenido de https://blogs.imf-


formacion.com/blog/tecnologia/ventajas-y-desventajas-del-lenguaje-r-202007/.

Introducción al R y al R- Studio. Finance and Econometrics (IFE) 51

También podría gustarte