38
Capítulo I Rafael Bustamante [email protected] La Serie Apuntes de Finance and Econometrics Group S.A.C. tiene por objetivo difundir los materiales de enseñanza generados por los docentes que tienen a su cargo el desarrollo de las asignaturas de la empresa. Estos documentos buscan proporcionar a los estudiantes una explicación de algunos temas específicos que son abordados en su formación profesional. Serie Apuntes de Clase F&E N° 01 Octubre de 2020

Serie Apuntes de Clase F&E N° 01

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Serie Apuntes de Clase F&E N° 01

Capítulo I

Rafael Bustamante [email protected]

La Serie Apuntes de Finance and Econometrics Group S.A.C. tiene por objetivo difundir los materiales de enseñanza generados por los docentes que tienen a su cargo el desarrollo de las asignaturas de la empresa. Estos documentos buscan proporcionar a los estudiantes una explicación de algunos temas específicos que son abordados en su formación profesional.

Serie Apuntes de Clase F&E N° 01

Octubre de 2020

Page 2: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

1

INTRODUCION A LA PROGRAMACION AL R 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 estos apuntes de clase es proporcionar las nociones básicas para aquellas personas

interesadas en comenzar a utilizar el programa 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 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: [email protected]

Page 3: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

2

Tabla de contenido

1. Introducción ...................................................................................................................... 3

2. Instalación de R y R Studio ................................................................................................... 4

3. Ventajas y desventajas de R ................................................................................................. 8

4. R como un sistema de ventanas ...........................................................................................13

5. Estadística con R ................................................................................................................14

6. Objetos – Tipos (Vector, Array, Matriz, Factor, Serie temporal, Lista, Data frame) .......................15

7.1 Objetos .....................................................................................................................15

7.2 Vectores ....................................................................................................................15

7.3 Creación de un vector ..................................................................................................16

7.4 Generación de Niveles .................................................................................................18

7.5 Factores ....................................................................................................................20

7.6 Indexación de Factores ................................................................................................25

7.7 Listas.........................................................................................................................29

7.8 Operaciones con Matrices ............................................................................................30

7.9 Arrays (Variable Multiindexada) ....................................................................................35

7. Bibliografía .......................................................................................................................36

Page 4: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

3

1. Introducción

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

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.

Page 5: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

4

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

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

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

Page 6: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

5

Figura N.ª 1

Figura N.ª 2

Page 7: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

6

Una vez terminada la instalación del programa R, ejecute y el programa se abrirá con una

ventana como se muestra, esta ventana se conoce como la consola de R, donde se tiene

que escribir los comandos.

Figura Nº 3

Instalación de 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 NetBe ans 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 des arrollo de

software orientado a objetos.

Page 8: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

7

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.

Figura Nº 4

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

Page 9: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

8

3. Ventajas y desventajas de R

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

Page 10: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

9

➢ 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

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

Page 11: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

10

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

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.

Page 12: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

11

➢ 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, . . .). 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:

Page 13: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

12

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

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

Page 14: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

13

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

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

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

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.

Page 15: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

14

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.

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

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.

Page 16: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

15

6. Objetos – Tipos (Vector, Array, Matriz, Factor, Serie temporal, Lista,

Data frame)

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

7.2 Vectores

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, valores lógicos,

etcétera. 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)

Page 17: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

16

• character (palabras)

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

Para generar un vector utilizamos la función c separando cada uno por medio de una

coma (,) por ejemplo si se quisiera almacenar la secuencia 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 dentro

de un vector llamado vector.

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)

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

Page 18: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

17

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

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:

> 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

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.

Page 19: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

18

Acceso a datos:

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.

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

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

Page 20: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

19

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.

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.

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

# Repetimos los dos niveles 6 veces con la etiqueta Hombre y Mujer

> gl(2, 6, labels = c("Hombre", "Mujer"))

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

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

# Crea todas las combinaciones posibles

Page 21: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

20

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

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

x < - 1:7

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

x

Lunes Martes Miercoles Jueves Viernes Sabado Domingo

1 2 3 4 5 6 7

Page 22: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

21

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

Page 23: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

22

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.

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

> 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

# Cinco niveles excluyendo el cuarto

factor(1:5, exclude=4)

[1] 1 2 3 <NA> 5

Levels: 1 2 3 5

Page 24: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

23

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.

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

asignación de la función levels:

> 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

> 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

Page 25: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

24

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

de meses:

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

mons

April August December February January July

2 4 1 2 3 1

March May November October September

1 1 5 1 3

> 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

1 4 3 1 5 1

Page 26: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

25

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:

7.6 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

> 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

> 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

Page 27: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

26

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.

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.

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:

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

> lets = factor(lets)

> table(lets[1:5])

a b c d e f g h i j k l m n o p q r s t u v w x y z

1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1

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

a k q s z

1 1 1 1 1

Page 28: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

27

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.

> 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

Page 29: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

28

> 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

> 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

Page 30: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

29

7.7 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:

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.

> 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

[1] 1 2 3 4 5 6 7

Page 31: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

30

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.8 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ño de la matriz

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

Warning message:

In matrix(1:4, 3) :

> 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

Page 32: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

31

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

Page 33: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

32

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.

# 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

Page 34: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

33

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

> 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

Page 35: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

34

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

> mm

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

Peso 70 1.80 27

Altura 108 2.06 19

Edad 82 1.98 32

> 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

Page 36: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

35

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.

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

a=c(1,3,2)

b=1.3

b=1:3

table(a,b)

Page 37: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

36

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

Page 38: Serie Apuntes de Clase F&E N° 01

Serie Apuntes de Finance and Econometrics Group N°01. Octubre del 2020.

Introducción al R y al R- Studio. Bustamante Romaní, Rafael.

37