[MUSIC] La primera pregunta que se nos puede venir a la cabeza es, ¿qué es R? R en pocas palabras no es más que un dialecto del lenguaje S. S fue un lenguaje que fue desarrollado por John Chambers en los laboratorios Bell durante los 70s. Este fue pensado como un ambiente para el análisis estadístico dentro de la compañía. Es decir, que inicialmente se implementó como una serie de bibliotecas de Fortran. Un lenguaje muy utilizado durante los 70s. Y además las primeras versiones del lenguaje no contenían funciones para análisis estadístico. El sistema fue re escrito en los 80s en el lenguaje de programación C. Esto con el objetivo de que fuera portable. Y es entonces que también en estos años Chambers y Hastie documentan en el famoso libro, Statistical Models in S, la funcionalidad, del lenguaje para el análisis estadístico. Porque you estaba tomando completa forma. En los años 90s sale la versión 4, que es más o menos la versión que nosotros conocemos hoy en día. Y además aparece el libro Programming with Data de John Chambers. Y en este se detallan las minucias del lenguaje. Básicamente S fue pensado como un ambiente interactivo. Que no necesariamente se puede ver en un principio como un lenguaje de programación. Pero a medida que el usuario va utilizando más y más las particularidades del ambiente. Acá va utilizando prácticas de programación. El lenguaje S entonces you proveía un acceso relativamente simple a una gran variedad de técnicas estadísticas. Además, que para los usuarios avanzados, les permitía escribir funciones por medio de un lenguaje de programación you bien definido. Con el que podían añadir nuevas técnicas por medio de la definición de estas. [SOUND] Como podemos ver, el desarrollo de S y S-PLUS fue generado en este ambiente comercial. Quizá, motivados por esta razón, en 1991, Ross Ihaka y Robert Gentleman deciden implementar su propia versión de S, ellos la bautizaron como R. Tan bien lograron hacer esto que para 1993 ponen R al público general. Esto tuvo tanto éxito, que para 1995 liberaron el código bajo una licencia GNU. La liberación del lenguaje tuvo tanta popularidad, que para 1996, se formaron por primera vez las listas de correo o de distribución de información llamadas R-help y R-devel. En estas se discutían temas relacionados con ayuda hacia el lenguaje. Y por el otro lado, el desarrollo del propio lenguaje. En 1997, se funda el R Core Group, que es un grupo especializado de programadores. Que llevan el desarrollo del lenguaje a través de los años. Tan bien ha ido el lenguaje que para el año 2000, por primera vez se libera la versión 1.0 de este. Para este año la explosión del lenguaje you fue muy grande. Y es entonces que por primera vez aparece en el New York Times en el año 2006 un artículo hablando de cómo los analistas de datos están cautivados por el poder de este lenguaje. Ahora estamos en el año 2015, y por fin tenemos una versión 3.2.2, que es la que utilizaremos en este curso. Las características del lenguaje R son muchísimas, y la mayoría de estas son tomadas como ventajas del mismo lenguaje. La principal y que es la razón por la cual fue adoptada ampliamente, es que su sintaxis es muy similar al lenguaje S. La semántica también es muy parecida al lenguaje S. Corre prácticamente en cualquier plataforma, Windows, Mac, Linux y prácticamente cualquier Unix y tiene un cambio de versiones muy rápido. El lenguaje R en realidad es muy pequeño y todas las funcionalidades de él se van agregando con paquetes. La capacidad de graficación además es muy madura y está considerado uno de los mejores sistemas para graficar. Además recordemos que tenemos un modo interactivo que sirve más que nada para probar ideas. Pero una vez que hemos probado estas se pueden implementar en scripts o programas mucho más grandes para hacer nuevas herramientas. Otra de las grandes ventajas es que tenemos una comunidad muy grande y estimulante y muy activa. Esto en las listas R-help y R-devel y en el sitio web Stack Overflow. Además es gratis. Y es software libre. Es entonces que ahora quisiera hablarles qué significa que tenga las cuatro libertades básicas del software libre. Estas son, la libertad para ejecutar el programa, que eso prácticamente cualquier software nos lo da. Luego viene una de las más importantes que es la libertad de acceder al código fuente. ¿Esto por qué es importante? Porque podemos obtener conocimiento de ese código. Finalmente, tenemos las dos últimas libertades que son las que hacen fuerte a la licencia GNU. Y esta es que podemos redistribuir nuestros cambios o el mismo software que obtenemos. Y finalmente los cambios que nosotros hacemos o mejoras pueden también ser distribuidas a la comunidad entera. Por supuesto R no es perfecto y podemos listar algunas de sus desventajas. Que es una tecnología relativamente vieja, tiene 40 años de edad. Y esto mismo se refleja en el sistema de gráficos en 3D, el cual no está completamente integrado en el sistema. La funcionalidad además, está basada en sus usuarios, ¿esto qué significa? Significa que si tú quieres un nuevo análisis, un nuevo modelo o algún tipo de tecnología nueva que quisieras probar. Dependes, you sea de la comunidad de usuarios para que se genere o tendrías que escribirlo tú mismo. Otro de los grandes problemas es que la mayoría de los objetos, o las variables que estamos usando en el sistema. Tienen que estar cargadas completamente en la memoria RAM. Por lo que las computadoras que tienen poca memoria pueden llegar a tener problemas. Además de que no es un sistema que es ideal para todo. No hay bala de plata tanto en los análisis estadísticos como en la programación en sí. Por lo cual R probablemente pertenece a un nicho muy pequeño todavía. Es también importante que hablemos del diseño del lenguaje. En principio hay un sistema base que contiene toda la funcionalidad del lenguaje y además ciertos paquetes. Que nos permiten poder manipular algunos datos y algunos métodos que nos van a servir. Encima de este sistema base tenemos paquetes que son recomendados. Generalmente son funciones que son muy utilizadas en general para casi cualquier tipo de de análisis estadístico. Y además, fuera de estos paquetes recomendados, existen más de 7000 paquetes que están contribuidos por la comunidad de usuarios de R. Y que suben todos los días algún paquete nuevo o mantienen estos en el sitio CRAN. Si quisiéramos convencer a alguien de por qué usarlo. Le podríamos decir que tiene muchas funciones estadísticas. Además de que podemos implementar de manera rápida procedimientos estadísticos y gráficos. Estos gráficos son muy buenos y están basados en el sistema base del lenguaje. Y los gráficos avanzados se pueden conseguir utilizando paquetes como ggplot2. Finalmente una cosa que a mí me parece maravillosa es que los autores de los paquetes pueden ser contactados directamente. Generalmente son personas que están dispuestas a ayudarte. Ustedes se preguntarán, ¿quién está detrás de R? Hay un grupo desde 1997, como you vimos en la historia, que mantiene el core del lenguaje que es conocido como el R Development Core Team. Este es financiado por la R Foundation que es una organización basada en Viena, sin fines de lucro. Podemos encontrar más información en el sitio de R que es www.r-project.org. Podemos ver en pantalla la interfaz básica de R y como you les conté, es muy simple. Las características de esta interfaz gráfica que es la oficial. Es que se tiene muy mala interacción. Te puedes olvidar muy fácilmente de qué variables y objetos están presentes en el sistema en un momento dado. Y las gráficas siempre aparecen en una ventana aparte. Es por eso que se creó el IDE o Integrated Development Environment, conocido como R Studio y es el que usaremos a lo largo del curso. Para los que están impacientes por comenzar. Pueden buscar algunos recursos de documentación en la página que you hemos nombrado antes www.r-project.org. Y estos son los cinco documentos básicos para poder tener, toda la documentación de R a la mano. Este es la introducción a R. Cómo escribir extensiones en R. Cómo importar y exportar datos en R. Cómo instalar y administrar un sistema donde más usuarios van a utilizar R. Y finalmente toda la implementación de los internos del lenguaje. [MUSIC]