Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 1
Rafael, Bustamante Romaní
N° 21
Diciembre de 2019 Serie Apuntes de Clase ΩΒΓ
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS Universidad del Perú, DECANA DE AMÉRICA
FACULTAD DE CIENCIAS ECONÓMICAS
https://financebusinessbet.wixsite.com/financebusiness
https://twitter.com/FinanzasEmpresa
rafaelbustamante.weebly.com
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 2
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.
http://www.financeybusiness.com
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
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 3
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: [email protected] .
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 4
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
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 5
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.
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 6
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
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 7
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
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 8
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.
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 9
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.
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 10
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
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 11
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
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 12
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
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 13
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).
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 14
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.
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 15
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.
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 16
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
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 17
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/
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 18
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.
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 19
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.
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 20
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)
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 21
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.
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 22
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.
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 23
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
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 24
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")
x
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.
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 25
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
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 26
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)
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 27
[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",
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 28
"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
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 29
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.
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 30
> 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
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]))
a k q s z
1 1 1 1 1
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
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 31
[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
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 32
[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
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 33
[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) :
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 34
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
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 35
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
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 36
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]
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 37
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
Serie Apuntes de Clase ΩΒΓ / Finance &Business N°21. Diciembre del 2019. FCE / UNMSM
Introducción al R y al R- Studio Bustamante Romaní, Rafael. 38
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.
Top Related