RStudio Assistant es una extensión de RStudio que proporciona ayuda contextual y sugerencias de código mientras se programa en R.
R Markdown: R Markdown es una extensión de RStudio que permite mezclar código de R, texto, matemáticas y resultados en un solo documento.
Shiny: Shiny es una extensión de RStudio que permite crear aplicaciones web interactivas directamente desde R.
R Notebooks: R Notebooks es una extensión de RStudio que permite crear y compartir documentos de análisis de datos interactivos.
entre otras.
1. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
1
(Versión preliminar)
Rafael, Bustamante Romaní
N° 17
Octubre de 2017
Serie Apuntes de Clase ΩΒΓ
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Universidad del Perú, DECANA DE AMÉRICA
FACULTAD DE CIENCIAS ECONÓMICAS
2. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. 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.
Encargados de la serie:
Bustamante Romaní, Rafael. Cisneros García, Juan Manuel.
rbustamanter@unmsm.edu.pe jcisnerosg@unmsm.edu.pe
Facultad de Ciencias Económicas.
Universidad Nacional Mayor de San Marcos.
Calle Germán Amézaga N° 375.
Ciudad Universitaria, Lima 1. Perú.
La Serie Apuntes de Clase ΩΒΓ es promovida y
desarrollada por un colectivo de docentes del
Departamento de Economía de la Universidad
Nacional Mayor de San Marcos.
El contenido de cada publicación es íntegramente
responsabilidad de cada autor, no representa
necesariamente los puntos de vista de los
integrantes del colectivo, ni de la Universidad.
Financeybusinness S.A.C. Es una firma especializada en la
prestación de servicios profesionales en capacitación y de
consultoría en el diseño e implementación de estrategias
empresariales ante los problemas financieros, de gestión y
riesgos a los que se enfrentan las empresas en su normal
funcionamiento.
http://financeybusiness.com
3. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. 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 estos apuntes de clase es proporcionar las nociones básicas para
personas interesadas en comenzar a utilizar el 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:
rafael.bustamanter@unmsm.edu.pe .
4. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. 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.......................................................................................................... 9
3. R como un sistema de ventanas................................................................................................... 15
3.1 Utilización interactiva de R...................................................................................................... 15
3.2 Programas relacionados. Documentación .............................................................................. 15
4. Objetos – Tipos (Vector, Array, Matriz, Factor, Serie temporal, Lista, Data frame) ..................... 16
4.1 Objetos.................................................................................................................................... 16
4.1.1 Vectores ........................................................................................................................... 17
4.1.2 Generación de Niveles ..................................................................................................... 19
4.1.3 Factores............................................................................................................................ 21
4.1.3 Indexación de Factores..................................................................................................... 26
4.1.4 Listas................................................................................................................................ 29
5. Operaciones con Matrices............................................................................................................. 30
6. Arrays (Variable Multiindexada) ................................................................................................... 35
Bibliografía ........................................................................................................................................ 35
5. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. 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 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.
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.
6. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
6
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 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
7. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
7
Figura Nº 2
Una vez terminada la instalación del programa R, ejecútelo, 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
8. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
8
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.
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
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.
9. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
9
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
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.
10. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
10
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).
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
.
3
La editorial Springer tiene una colección –UseR!– dedicada exclusivamente a R.
11. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
11
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 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,
12. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
12
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 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
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.
13. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
13
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 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).
14. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
14
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.
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).
5
Por ejemplo: http://stat.cmu.edu/S/
15. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
15
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.
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. Hastie. V´ease Apendice F [Referencias],
página 100, para referencias concretas.
1.3 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´an incluidas en el entorno
16. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
16
base de R y otras se acompañan en forma de bibliotecas (packages). El hecho de
distinguir entre ambos conceptos es fundamentalmente una cuesti´on 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.
4. Objetos – Tipos (Vector, Array, Matriz, Factor, Serie temporal, Lista, Data
frame)
4.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).
17. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
17
4.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)
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
18. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
18
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.
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:
19. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
19
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.
4.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
20. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
20
R puede escribir vectores con caracteres o números, pero siempre entiende los
elementos como si fuesen del mismo tipo.
Un vector siempre está formado por elementos del mismo tipo, no pueden
mezclarse números y cadenas de caracteres (se transformaría en cadenas de
caracteres). Del mismo modo, si mezcla números reales y complejos, se
entenderían como complejos.
c("Hola", "Adios")
c(1, 1+2i)
c(1-1i, 2)
dias.semana=c("Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Domingo
") > dias.semana
Una 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).
21. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
21
4.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.
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.
22. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
22
Los niveles de un factor se utilizan cuando se muestran los valores del factor. Se
puede cambiar estos niveles en el momento en que crea un factor pasando un
vector con los nuevos valores a través del argumento labels =. Tenga en cuenta que
esto realmente cambia los niveles internos del factor y para cambiar las etiquetas
de un factor después de que se ha creado, se utiliza la forma de asignación de la
función de niveles. Para ilustrar este punto, considere un factor tomando valores
enteros que queremos mostrar como números romanos.
# Tres niveles
> factor(1:3)
[1] 1 2 3
Levels: 1 2 3
El atributo “levels” indica los valores numéricos posibles (es decir los caracteres
diferentes que aparecen en el vector). Se utiliza, por ejemplo, para dividir una
población en grupos.
La función “factor” se utiliza para codificar un vector como un factor. Creando
tantos niveles como le indiquemos.
# Cinco niveles
> factor(1:3, levels=1:5)
[1] 1 2 3
Levels: 1 2 3 4 5
# Un vector de dos elementos con cuatro niveles
aa<-factor(c(2,3),levels=2:5)
> aa
[1] 2 3
Levels: 2 3 4 5
levels(aa)
23. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
23
> levels(aa)
[1] "2" "3" "4" "5"
factor(c("Mujer","Mujer","Hombre"))
[1] Mujer Mujer Hombre
Levels: Hombre Mujer
Con la opción “exclude”, por ejemplo “factor(1 : 5, exclude = 4)” excluimos los
valores de los niveles que necesitemos y con “ordered” especificamos si los niveles
del factor están ordenados.
# Cinco niveles excluyendo el cuarto
factor(1:5, exclude=4)
[1] 1 2 3 <NA> 5
Levels: 1 2 3 5
Un error muy común es utilizar variables aparentemente numéricas en análisis
estadísticos, por ejemplo números telefónicos o códigos postales. Por ello antes de
utilizar un vector con caracteres cualitativos o cuantitativos dentro de un análisis,
hace falta convertirlo en un factor.
> data = c(1,2,2,3,1,2,3,3,1,2,3,3,1)
> fdata = factor(data)
> fdata
[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
24. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
24
Para convertir el factor predeterminado fdata a números romanos, usamos la
forma de asignación de la función levels:
> levels(fdata) = c('I','II','III')
> fdata
[1] I II II III I II III III I II III III I
Levels: I II III
Como ejemplo de un factor ordenado, considere los datos que consisten en los
nombres de meses:
> mons=c("March","April","January","November","January", "September",
"October","September","November","August","January","November",
"November","February","May","August","July","December","August",
"August","September","November", "February","April")
> mons = factor(mons)
> table(mons)
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:
25. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
25
> 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
> 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
26. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
26
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.
> 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
27. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
27
Para excluir ciertos niveles de aparecer en un factor, el argumento excluir = se
puede pasar al factor. Por defecto, el valor faltante (NA) se excluye de los niveles
de factor; para crear un factor que incluya valores perdidos de una variable
numérica, use exclude = NULL.
Se debe tener cuidado al combinar variables que son factores, porque la función c
interpretará los factores como enteros. Para combinar los factores, primero deben
ser convertidos de nuevo a sus valores originales (a través de la función de los
niveles), luego catenated y convertido a un nuevo factor:
> l1 = factor(sample(letters,size=10,replace=TRUE))
> l2 = factor(sample(letters,size=10,replace=TRUE))
> l1
[1] o b i v q n q w e z
Levels: b e i n o q v w z
> l2
[1] b a s b l r g m z o
Levels: a b g l m o r s z
> l12 = factor(c(levels(l1)[l1],levels(l2)[l2]))
> l12
[1] o b i v q n q w e z b a s b l r g m z o
Levels: a b e g i l m n o q r s v w z
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
28. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
28
literales del factor, primero se debe convertir a carácter y después a numérico. Este
procedimiento puede ser bastante útil si en un archivo una variable numérica
también tiene valores no-numéricos.
> c.p<-c(18002,18194,18199)
> c.p
[1] 18002 18194 18199
> mode(c.p)
[1] "numeric"
> codigo.postal<-factor(c.p)
> codigo.postal
[1] 18002 18194 18199
Levels: 18002 18194 18199
> c.p<-c(18002,18194,18199)
> c.p
[1] 18002 18194 18199
> mode(c.p)
[1] "numeric"
> codigo.postal<-factor(c.p)
> codigo.postal
[1] 18002 18194 18199
Levels: 18002 18194 18199
> 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
29. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
29
4.1.4 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
[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
30. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
30
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´as
indices y que se imprimen de modo especial. Para crearlas utilizamos la funci´on
“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) :
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)
31. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
31
> 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 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
32. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
32
> # 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 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
33. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
33
> 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]
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
34. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
34
[,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 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)
35. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
35
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.
36. Serie Apuntes de Clase ΩΒΓ / Finance &Business N°17. Octubre del 2017. FCE / UNMSM
Introducción al R y al R- Studio
Bustamante Romaní, Rafael.
36