Está en la página 1de 38

Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.

FCE / UNMSM

N° 21
Serie Apuntes de Clase ΩΒΓ Diciembre de 2019

Rafael, Bustamante Romaní

https://financebusinessbet.wixsite.com/financebusiness
https://twitter.com/FinanzasEmpresa
rafaelbustamante.weebly.com

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS


Universidad del Perú, DECANA DE AMÉRICA

FACULTAD DE CIENCIAS ECONÓMICAS

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
1
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM

La Serie Apuntes de Clase Omega Beta Gamma tiene por objetivo difundir
los materiales de enseñanza generados por los docentes que tienen a su
cargo el desarrollo de las asignaturas que forman parte de los Planes de
Estudios de las Escuelas Académico-Profesionales de la Facultad de
Ciencias Económicas de la Universidad Nacional Mayor de San Marcos.
Estos documentos buscan proporcionar a los estudiantes la explicación de
algunos temas específicos que son abordados en su formación
universitaria.

Facultad de Ciencias Económicas.


Universidad Nacional Mayor de San Marcos.
Calle Germán Amézaga N° 375.
Ciudad Universitaria, Lima 1. Perú.

La Serie Apuntes de Clase ΩΒΓ es promovida y


desarrollada por un colectivo de docentes del
Departamento de Economía de la Universidad Nacional
Mayor de San Marcos.
El contenido de cada publicación es íntegramente
responsabilidad de cada autor, no representa
necesariamente los puntos de vista de los integrantes
del colectivo, ni de la Universidad.

Financeybusinness S.A.C. Es una firma especializada en


la prestación de servicios profesionales en capacitación y de
consultoría en el diseño e implementación de estrategias
empresariales ante los problemas financieros, de gestión y
riesgos a los que se enfrentan las empresas en su normal
funcionamiento.

https://financebusinessbet.wixsite.com/financebusiness
https://twitter.com/FinanzasEmpresa
rafaelbustamante.weebly.com

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
2
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM

INTRODUCIÓN AL R Y AL R- STUDIO

.

Rafael Bustamante Romaní

Resumen

R es un programa es ampliamente conocido como un lenguaje de programación y un


entorno para análisis estadístico y la realización de gráficos de gran calidad.
Contiene un entorno de computación viable para la implementación y la aplicación
de métodos numéricos de manera sencilla y efectiva. Aunque 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 interpretado, se
incluye una sección mínima sobre cómo 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 objeto de que se pueda usar de una manera básica.
Dado que R ofrece una amplia gama de posibilidades, es útil para el principiante
adquirir algunas nociones y conceptos y así progresar gradualmente.
Se busca, asimismo simplificar las explicaciones al máximo 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.

 Estudios de Doctorado en Economía, Universidad Autónoma de México. Maestría en Economía con mención
en Finanzas, MBA Centrum Pontificia Universidad Católica del Perú. B. Sc. Economía, Universidad Nacional
Mayor de San Marcos. Profesor del Departamento de Economía de UNMSM. Investigador asociado al
Instituto de Investigaciones FCE – UNMSM. Investiga. Contacto: rafael.bustamanter@unmsm.edu.pe .

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
3
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
Contenido

1. Introducción al entorno R ............................................................................................................... 5


2. Ventajas y desventajas de R ........................................................................................................ 13
3. R como un sistema de ventanas ................................................................................................... 18
3.1 Utilización interactiva de R ...................................................................................................... 18
3.2 Programas relacionados. Documentación .............................................................................. 19
4. Objetos – Tipos (Vector, Array, Matriz, Factor, Serie temporal, Lista, Data frame) ..................... 20
4.1 Objetos .................................................................................................................................... 20
4.1.1 Vectores ........................................................................................................................... 20
4.1.2 Generación de Niveles ..................................................................................................... 23
4.1.3 Factores ............................................................................................................................ 24
4.1.3 Indexación de Factores .................................................................................................... 29
4.1.4 Listas ................................................................................................................................ 32
5. Operaciones con Matrices............................................................................................................. 33
6. Arrays (Variable Multiindexada) ................................................................................................... 38
Bibliografía ........................................................................................................................................ 38

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
4
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
1. 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 ofrecen al lector 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ódigos1. Si bien es cierto que existen interfaces gráficas (R

Commander) que facilitan el uso de R como software para el análisis de datos, no es

menos cierto que la adquisición de destrezas en el manejo de unas normas de sintaxis

básicas de programación permitirán al usuario de R beneficiarse aún más de la

potencia y de las ventajas que ofrece este entorno (Elousa, 2010).

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.

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

pantalla o en papel.

1
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
Bustamante Romaní, Rafael.
5
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
 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 podemos traducir como guión) 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).

1.1 Instalación de R y R‐Studio

Para la instalación del programa R y del paquete R-Commander, con su navegador


abra la página www.r-project.org. Marque el enlace Download R como se ilustra.

Figura Nº 1

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
6
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM

Figura Nº 2

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
Bustamante Romaní, Rafael.
7
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM

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


nuestra computadora.

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


fecha que es Download R 3.5.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.

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
8
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM

Figura Nº 4

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 IDE2 muy popular y que ofrece un entorno prácticamente
idéntico en todos los sistemas operativos para utilizar R.

2
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
Bustamante Romaní, Rafael.
9
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM

Para instalar esta plataforma entramos a la página del R Studio:


https://www.rstudio.com/

Figura Nº 5

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

Figura Nº 6

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
10
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM

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º 7

Figura Nº 4

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
11
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM

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
Bustamante Romaní, Rafael.
12
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
2. Ventajas y desventajas de R (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.

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

 Amplia disponibilidad de documentación, tanto en internet como en libros

publicados por editoriales de prestigio (Springer, Wiley).

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
13
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
 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,

geo estadística, modelos gráficos o análisis de mercados financieros3.

Entre las desventajas podemos mencionar:

 Suele señalarse como principal desventaja de R el hecho de que el paquete

base no dispone de una interfaz amigable para el usuario; no existe un menú

principal en el que el usuario pueda acceder mediante el ratón a submenús

para la lectura de datos, la ejecución de procedimientos estadísticos o la

generación de gráficos. Estas tareas se llevan a cabo mediante un lenguaje de

comandos que puede resultar duro de aprender para el usuario común. No

obstante se han desarrollado algunas GUIs (Graphical User Interfaces) que

facilitan enormemente esta tarea. En particular la interfaz R-Commander

desarrollada por John M. Fox en la McMaster University de Canadá presenta

un menú para el acceso a los comandos más habituales que, además, muestra
3
La editorial Springer tiene una colección –UseR!– dedicada exclusivamente a R.

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
14
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
el código que emplea R de forma que permite al usuario familiarizarse con el

lenguaje.

 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 acelera su ejecución de

manera notable.

 No dispone de un sistema de base de datos propio, aunque sí cuenta con un

formato para el almacenamiento e intercambio de datos. En cualquier caso se

han desarrollado paquetes para conectar y acceder a múltiples sistemas de

bases de datos (las propias de SAS o SPSS, Access, dBase, Excel, MySQL, etc ).

Tiene algunas limitaciones en cuanto al uso de la memoria, que dificultan el

análisis de bases de datos masivas4. No obstante estas limitaciones han ido

desapareciendo a medida que se han ido desarrollando ordenadores con

mayor capacidad (procesadores de 64 bits, más disponibilidad de memoria y

de direccionamiento de la misma). En cualquier caso, salvo que el usuario

deba acceder a millones de registros simultáneamente, es difícil que llegue a

notar problemas con la memoria.

 No dispone de un sistema de base de datos propio, aunque sí cuenta con un

formato para el almacenamiento e intercambio de datos. En cualquier caso se

han desarrollado paquetes para conectar y acceder a múltiples sistemas de

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

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
15
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
bases de datos (las propias de SAS o SPSS, Access, dBase, Excel, MySQL, . . . ).

Tiene algunas limitaciones en cuanto al uso de la memoria, que dificultan el

análisis de bases de datos masivas5. No obstante estas limitaciones han ido

desapareciendo a medida que se han ido desarrollando ordenadores con

mayor capacidad (procesadores de 64 bits, más disponibilidad de memoria y

de direccionamiento de la misma). En cualquier caso, salvo que el usuario

deba acceder a millones de registros simultáneamente, es difícil que llegue a

notar problemas con la memoria.

 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 récord. Debe señalarse, 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.

 A todos los puntos 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

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
16
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
usuario pueda aplicar casi cualquier procedimiento estadístico –sea o no

adecuado para sus datos o su problema– sin apenas esfuerzo y obtenga

páginas 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

lenguaje R permite al usuario, por ejemplo, programar bucles (’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;5 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.

5
Por ejemplo: http://stat.cmu.edu/S/

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
17
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
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 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.

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
18
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
3.2 Programas relacionados. 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 ´utiles 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.

4 Estadística con R

En la introducción a R no se ha mencionado la palabra estadística, sin embargo

muchas personas utilizan R como un sistema estadístico. Nosotros preferimos

describirlo como 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´orica. Junto

con R se incluyen ocho bibliotecas (llamadas bibliotecas est´andar) pero otras muchas

est´an disponibles a través de Internet en CRAN (http://www.r-project.org).

Como hemos indicado, muchas técnicas estadísticas, desde las clásicas hasta la

última metodología, están disponibles en R, pero los usuarios necesitarán estar

dispuestos a trabajar un poco para poder encontrarlas.

Existe una diferencia fundamental en la filosofía que subyace en R (o S) y la de otros

sistemas estadísticos. En R, un análisis estadístico se realiza en una serie de pasos,

con unos resultados intermedios que se van almacenando en objetos, para ser

observados o analizados posteriormente, produciendo unas salidas mínimas.

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
19
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
5. Objetos – Tipos (Vector, Array, Matriz, Factor, Serie temporal, Lista, Data frame)

5.1 Objetos

En términos genéricos, todos los elementos que maneja R son objetos: un valor

numérico es un objeto, un vector es un objeto, una función es un objeto, una base de

datos es un objeto, un gráfico es un objeto, etc. Para realizar un uso eficiente de R es

preciso entender y aprender a manipular bien las distintas clases de objetos que

maneja el programa. En esta sección nos vamos a ocupar particularmente de aquellos

objetos que R utiliza para representar datos: valores, vectores, matrices, dataframes,

series temporales y listas.

R utiliza la programación orientada a objetos. 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).

5.1.1 Vectores
La función vector, que tiene dos argumentos mode y length, crea 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).

Uso

vector(mode = "logical", length = 0)

Ejemplo:

v <- vector("integer", 0)

v # Un vector de enteros sin elementos

## integer(0)

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
20
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
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

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

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

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.

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
21
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM

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

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

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
22
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
5.1.2 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"))

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

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
23
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
Una opció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

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

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

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
24
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
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

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

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
25
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
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)

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

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
26
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
[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

[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",

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
27
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
"November","February","May","August","July","December","August",

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

> mons = factor(mons)

> table(mons)

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

3 2 1 2 1 0

July August September October November December

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
28
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
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

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

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
29
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
> 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

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

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
30
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
[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

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

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
31
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
[1] 18002 18194 18199

> mode(c.p)

[1] "numeric"

> codigo.postal<-factor(c.p)

> codigo.postal

[1] 18002 18194 18199

Levels: 18002 18194 18199

> 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

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

>A

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

>B

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
32
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
[1] 1 2 3 4 5 6 7

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.

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

> # Tenemos que tener en cuenta el tama~no de la matriz

> m2<-matrix(1:4,3)

Warning message:

In matrix(1:4, 3) :

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
33
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
La longitud de los datos [4] no es un submúltiplo o múltiplo del número de filas [3]

en 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

[,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

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

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
34
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
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.

# 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

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

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
35
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
indicamos los dos índices matriz [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

> 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]

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
36
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
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

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

Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
37
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019.
FCE / UNMSM
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)

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

Bibliografía

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

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
Bustamante Romaní, Rafael.
38

También podría gustarte