0% encontró este documento útil (0 votos)
108 vistas71 páginas

Curso R PDF

Este documento presenta un resumen de 3 oraciones del curso básico de R dictado por el MSc. Rafael Roberto Ruiz Escorcia en 2019. El curso cubre temas introductorios de R como vectores, matrices, tablas de datos, programación de gráficos y Shiny a través de varias secciones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
108 vistas71 páginas

Curso R PDF

Este documento presenta un resumen de 3 oraciones del curso básico de R dictado por el MSc. Rafael Roberto Ruiz Escorcia en 2019. El curso cubre temas introductorios de R como vectores, matrices, tablas de datos, programación de gráficos y Shiny a través de varias secciones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Introducción

Empezar a trabajar con R


Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Curso básico de R

MSc. Rafael Roberto Ruiz Escorcia

2019

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Contenido

1 Introducción Ordenar un vector y seleccionar un


Preliminares elemento de un vector
¿Cómo instalar R? 4 Matrices
2 Empezar a trabajar con R Las Matrices
Ayuda Etiquetando las filas y columnas de
Demostraciones de las funciones de una matriz
R Las funciones rbind y cbind
Bibliotecas en R 5 Tabla de datos (Dataframes)
Instalando paquetes y bibliotecas Importando dataframes y análisis
Ver y editar un conjunto de datos numérico
ya existente Subscritos e ı́ndices para Dataframe
Ver y borrar objetos que se han Ordenando Dataframes
creado en una sesión de R Usando condicionales lógicos para
3 Vectores en R seleccionar filas de una tabla de da-
Vectores numéricos y asignaciones tos
Generando vectores de una secuen- Otro clase de extracciones para una
cia aritmética tabla de datos
Generando vectores mediante ecua- Clasificaciones y uso de la función
ciones split()
Generando vectores de caracteres
Generando vectores aleatorios 6 Programación de Gráficos en R
Nombrando los elementos
MSc. Rafael dentro
Roberto Ruiz de
Escorcia
Gráficos de dispersión
Introducción
Empezar a trabajar con R
Vectores en R
Preliminares
Matrices
¿Cómo instalar R?
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

¿Qué es R?
1 Un programa estadı́stico computacional para el análisis de datos. Un
lenguaje orientado a objetos: Esto significa que las variables, datos,
funciones, resultados, etc., se guardan en la memoria activa del
computador en forma de objetos con un nombre especı́fico.
2 Un lenguaje de programación.
Diseñado por estadı́sticos y para estadı́sticos.
Con un manejo efectivo de los datos y facilidad de almacenamiento.
Con un conjunto completo de operadores para realizar cálculos
matemáticos.
Con una gran colección de herramientas que se muestran de una manera
coherente e integrada para el análisis de datos.
Con facilidades gráficas de alta definicián para el análisis de datos,
dando ası́ a trabajos de investigación o presentaciones en diapositivas,
un gran toque de profesionalismo.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Preliminares
Matrices
¿Cómo instalar R?
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

¿Qué es R?
3 Un entorno.
Flexible y poderoso para la investigación computacional.
Que contiene una librerı́a llena de algoritmos para acceder a un gran
conjunto de datos, que se pueden manipular, analizar y graficar.
4 Un software con “Sistema Abierto”.
Un programa libre de costos, descargable vı́a Internet.
Distribuido bajo la licencia GPL (General Public Licence).
Completamente disponible para todo el mundo, donde se puede ver el
código del programa y proponer cambios.
Disponible en muchas plataformas: Unix, Linus, Mac y versiones
superiores a Windows 95.
5 Una comunidad
Muchos contribuyentes conocidos como el “Grupo Nuclear de Desarrollo
de R” y más de 3 millones de usuarios.
Recursos, ejemplos y ayudas en cada dominio.
Admisibles para no-especialistas en programación.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Preliminares
Matrices
¿Cómo instalar R?
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

¿Cómo instalar R?
1 Ir a la página [Link] 1
2 Hacer clic en Download R for Windows o de acuerdo al Sistema
Operativo que tengas.
3 Hacer clic en el subdirectorio base o hacer clic en install R for the first
time.
4 Hacer clic en Download R 3.1.0 for Windows (52 megabytes, 32/64 bit)
5 Ir al archivo ejecutable con el nombre de [Link] y seguir las
instrucciones de descarga.
6 Al finalizar todos los pasos éste debió crear un ı́cono sobre tu escritorio.
7 Antes de empezar a trabajar con R hay que selecciar un directorio de
trabajo (opcional).

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Ayuda
Empezar a trabajar con R
Demostraciones de las funciones de R
Vectores en R
Bibliotecas en R
Matrices
Instalando paquetes y bibliotecas
Tabla de datos (Dataframes)
Ver y editar un conjunto de datos ya existente
Programación de Gráficos en R
Ver y borrar objetos que se han creado en una sesión de R
Shiny

Ayuda
Para obtener cualquier tipo de ayuda, información, descripción general y la
lista de argumentos para el buen uso de una función en especı́fico, se escribe:

help(“nombre de la función”)

Un comando más corto serı́a:


¿“nombre de la función”
Por ejemplo:
help(“mean”)

?mean

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Ayuda
Empezar a trabajar con R
Demostraciones de las funciones de R
Vectores en R
Bibliotecas en R
Matrices
Instalando paquetes y bibliotecas
Tabla de datos (Dataframes)
Ver y editar un conjunto de datos ya existente
Programación de Gráficos en R
Ver y borrar objetos que se han creado en una sesión de R
Shiny

Demostraciones de las funciones de R


Los siguientes comandos son útiles para ver el gran desempeño de lo que R
puede hacer.
demo(persp)

demo(graphics)

demo(Hershey)

demo(plotmath)

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Ayuda
Empezar a trabajar con R
Demostraciones de las funciones de R
Vectores en R
Bibliotecas en R
Matrices
Instalando paquetes y bibliotecas
Tabla de datos (Dataframes)
Ver y editar un conjunto de datos ya existente
Programación de Gráficos en R
Ver y borrar objetos que se han creado en una sesión de R
Shiny

Bibliotecas en R
Para usar una de las bibliotecas, simplemente se debe escribir la función library
con el nombre de la biblioteca dentro de los paréntesis.
Por ejemplo:
library(MASS)
De manera general, si queremos saber la lista de paquetes y la descripción de cada
uno de ellos que hay en nuestra biblioteca de R, escribimos:
library()
Ahora si queremos saber sobre la información completa de la biblioteca MASS que
previamente hemos invocado, es decir, conocer la descripción de la misma, las
funciones y conjunto de datos que posee, escribimos:
library(help=MASS)
De otro modo podemos también ver el contenido completo de la biblioteca en
orden alfabético sin distinción de una función o conjunto de datos, de la siguiente
manera:
objects(grep(“MASS”,search()))

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Ayuda
Empezar a trabajar con R
Demostraciones de las funciones de R
Vectores en R
Bibliotecas en R
Matrices
Instalando paquetes y bibliotecas
Tabla de datos (Dataframes)
Ver y editar un conjunto de datos ya existente
Programación de Gráficos en R
Ver y borrar objetos que se han creado en una sesión de R
Shiny

Instalando paquetes y bibliotecas


Para la instalación de paquetes y bibliotecas en R, se puede realizar
mediante dos formas:
1. Escribiendo en el prompt:
[Link](“nombre del paquete”, dep= TRUE)
2. En la barra de Menú del programa

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Ayuda
Empezar a trabajar con R
Demostraciones de las funciones de R
Vectores en R
Bibliotecas en R
Matrices
Instalando paquetes y bibliotecas
Tabla de datos (Dataframes)
Ver y editar un conjunto de datos ya existente
Programación de Gráficos en R
Ver y borrar objetos que se han creado en una sesión de R
Shiny

Ver y editar un conjunto de datos ya existente


Para ver y editar un conjunto de datos ya existente dentro de R, se realiza
los siguientes pasos:
Por ejemplo dentro de la biblioteca de MASS, se encuentran muchos
conjuntos de datos interesantes para realizar su análisis estadı́stico. Por
ejemplo si queremos ver o editar el conjunto de datos “wtloss”, escribimos:
library(MASS)
wtloss
fix(wtloss)
Importante: Si por alguna razón al momento de querer editar un conjunto
datos y R muestra un error diciendo que no se puede ejecutar esa acción,
entonces existe una opción llamada attach() que permite poder hacer
dichos cambios.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Ayuda
Empezar a trabajar con R
Demostraciones de las funciones de R
Vectores en R
Bibliotecas en R
Matrices
Instalando paquetes y bibliotecas
Tabla de datos (Dataframes)
Ver y editar un conjunto de datos ya existente
Programación de Gráficos en R
Ver y borrar objetos que se han creado en una sesión de R
Shiny

Ver y borrar objetos que se han creado en una sesión de R


Para ver todos los objetos (variables, vectores, funciones, conjunto de datos,
rutinas, etc...) que se han creado en una sesión de R actual, se escribe lo
siguiente:
ls()

objects()
De esa lista de objetos, queremos borrar alguno de ellos, escribimos:
rm(name)
O de lo contrario, borrar toda la lista:
rm(list=ls())

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Vectores numéricos y asignaciones
Empezar a trabajar con R
Generando vectores de una secuencia aritmética
Vectores en R
Generando vectores de caracteres
Matrices
Generando vectores aleatorios
Tabla de datos (Dataframes)
Nombrando los elementos dentro de un vector
Programación de Gráficos en R
Ordenar un vector y seleccionar un elemento de un vector
Shiny

Vectores en R
Los valores pueden ser asignados a un vector de muchas maneras. Ya sean
valores que se le asignen al vector dado unos números cualesquiera, valores
generados por una secuencia constante o fija, mediante una ecuación,
generando vectores de caracteres o de valores aleatorios.

Vectores numéricos y asignaciones


Por ejemplo si queremos asignarle al vector k, los siguientes valores: 2, 8.5,
5, 6.1, 4.7, 15, 9. En R se puede escribir de varias formas:
k=c(2, 8.5, 5, 6.1, 4.7, 15, 9) aquı́ empleamos la función “c”: encadena
o enlaza valores numéricos.

assign(“k1”,c(2, 8.5, 5, 6.1, 4.7, 15, 9)) aquı́ empleamos la función


“assign”: asigna un valor o conjunto de valores a un nombre en especı́fico

Nota: Si quisiera verificar ya sea la longitud del vector que he creado o del
conjunto que he importado, se utiliza la función length().

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Vectores numéricos y asignaciones
Empezar a trabajar con R
Generando vectores de una secuencia aritmética
Vectores en R
Generando vectores de caracteres
Matrices
Generando vectores aleatorios
Tabla de datos (Dataframes)
Nombrando los elementos dentro de un vector
Programación de Gráficos en R
Ordenar un vector y seleccionar un elemento de un vector
Shiny

Generando vectores de una secuencia aritmética


Suponga que deseamos generar un vector numérico de valores enteros
positivos del 1 al 10, y que le llamaremos “conteo”. En el prompt podemos
escribir de las siguientes maneras:
1 conteo1=1:10 Aquı́ utilizamos el operador : para generar secuencias de uno en uno

2 conteo2=seq(1,10,by =1) la función “seq”: se emplea para generar secuencias más

complejas. El argumento “by”: indica el incremento de la secuencia

3 conteo3=seq(1,10,length=10)
4 conteo4=rep(1:10,each=1) la función rep, se emplea también para
generar secuencias con repeticiones

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Vectores numéricos y asignaciones
Empezar a trabajar con R
Generando vectores de una secuencia aritmética
Vectores en R
Generando vectores de caracteres
Matrices
Generando vectores aleatorios
Tabla de datos (Dataframes)
Nombrando los elementos dentro de un vector
Programación de Gráficos en R
Ordenar un vector y seleccionar un elemento de un vector
Shiny

Generando vectores mediante ecuaciones


Es posible generar vectores numéricos utilizando alguna ecuación
matemática. Por ejemplo, sea x un vector de números enteros del 1 al 10 y
sea h un vector de la forma, h = 3x2 + 5, entonces, si deseáramos generar
un vector numérico para h, bajo las condiciones anteriores, éste serı́a de la
siguiente manera:
x = 1 : 10
h=3*xˆ 2+5
h

Generando vectores de caracteres


Los vectores de caracteres son muy empleados en R, por ejemplo en un gráfico de
etiquetas, en tablas o matrices (solo por mencionar algunos). La manera de
escribir éste en el prompt es utilizando la función “c” o la función “paste”:
nombres=c(“Plaza”,“Majagual”,“Puerto”, “Colombia”)
unir=paste(nombres,1:4,sep=“”)
unir=paste(c(nombres[1],nombres[3]),c(nombres[2],nombres[4]),sep=“”)

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Vectores numéricos y asignaciones
Empezar a trabajar con R
Generando vectores de una secuencia aritmética
Vectores en R
Generando vectores de caracteres
Matrices
Generando vectores aleatorios
Tabla de datos (Dataframes)
Nombrando los elementos dentro de un vector
Programación de Gráficos en R
Ordenar un vector y seleccionar un elemento de un vector
Shiny

Generando vectores aleatorios


Los vectores aleatorios pueden ser generados mediante cualquiera de las
diferentes distribuciones de probabilidades tanto discretas como continuas
que nosotros conocemos. Veamos algunos ejemplos:
args(runif ) La función “args” permite saber cuales son los argumentos mı́nimos necesarios que

debe emplear la función “runif”.

runif(10)
args(rpois); rpois(10,100)
args(rnorm); rnorm(10,100)

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Vectores numéricos y asignaciones
Empezar a trabajar con R
Generando vectores de una secuencia aritmética
Vectores en R
Generando vectores de caracteres
Matrices
Generando vectores aleatorios
Tabla de datos (Dataframes)
Nombrando los elementos dentro de un vector
Programación de Gráficos en R
Ordenar un vector y seleccionar un elemento de un vector
Shiny

Nombrando los elementos dentro de un vector


Después de haber creado algún vector cualquiera, en ocasiones es muy útil
etiquetar cada uno de sus elementos, ya sea con números o un nombre en
especı́fico. Por ejemplo si creamos el vector 15, 28, 10, 4, 21, 18, 35, 9
llamado cuenta, tenemos que:

cuenta=c(15,28,10,4,21,18,35,9)
names(cuenta)=0:7 con este comando se ha creado una tabla de frecuencias

Ahora si por ejemplo tenemos ya creada la tabla anterior y solo nos interesa
las frecuencias, es decir, queremos remover los nombres, entonces
empleamos la función [Link]() ası́:
[Link](cuenta)

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Vectores numéricos y asignaciones
Empezar a trabajar con R
Generando vectores de una secuencia aritmética
Vectores en R
Generando vectores de caracteres
Matrices
Generando vectores aleatorios
Tabla de datos (Dataframes)
Nombrando los elementos dentro de un vector
Programación de Gráficos en R
Ordenar un vector y seleccionar un elemento de un vector
Shiny

Ordenar un vector y seleccionar un elemento de un vector


Para ordenar un vector o un conjunto de valores, se utiliza el comando
“sort(vector)” si es en orden ascendente y “rev(sort(vector))” si es en
orden descendente. Veamos un ejemplo: Dado el siguiente vector numérico
llamado num: ordenarlo de menor a mayor y viceversa.
num=rpois(20,5)
Ordenando de menor a mayor tenemos que:
sort(num)
Ordenando de mayor a menor, tenemos que:
rev(sort(num))

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Vectores numéricos y asignaciones
Empezar a trabajar con R
Generando vectores de una secuencia aritmética
Vectores en R
Generando vectores de caracteres
Matrices
Generando vectores aleatorios
Tabla de datos (Dataframes)
Nombrando los elementos dentro de un vector
Programación de Gráficos en R
Ordenar un vector y seleccionar un elemento de un vector
Shiny

Ordenar un vector y seleccionar un elemento de un vector


En algunas circunstancias deseamos obtener o seleccionar alguno de los
elementos de un vector en especı́fico. Los subscritos o ı́ndices (denotados en
R con []) son empleados para tal fin. Es decir, que si queremos seleccionar:
(a) el noveno elemento de la lista
(b) extraer los valores de las posiciones pares, del vector anterior “num”.
En el prompt se escribe ası́:
(a) num[9]
(b) num[seq(2,20,by=2)]

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Vectores numéricos y asignaciones
Empezar a trabajar con R
Generando vectores de una secuencia aritmética
Vectores en R
Generando vectores de caracteres
Matrices
Generando vectores aleatorios
Tabla de datos (Dataframes)
Nombrando los elementos dentro de un vector
Programación de Gráficos en R
Ordenar un vector y seleccionar un elemento de un vector
Shiny

Ordenar un vector y seleccionar un elemento de un vector


Para saber en qué posición se encuentra un elemento o varios de ellos con
cierta caracterı́stica dentro de un vector y para saber cuáles son esos
elementos, utilizamos la función ‘‘which()”. Veamos un ejemplo:
Dado el vector “a” tal como se muestra abajo, indicar cuál de sus elementos
son mayores que 5.
a = c(2,5,7,9,3,8,1,3,9,12,7,2,1,5,8,12,1,3)

which(a > 5) indica el valor posicional de cada uno de los elementos dentro del vector

a[a > 5] indica los elementos que poseen tal caracterı́stica.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Vectores numéricos y asignaciones
Empezar a trabajar con R
Generando vectores de una secuencia aritmética
Vectores en R
Generando vectores de caracteres
Matrices
Generando vectores aleatorios
Tabla de datos (Dataframes)
Nombrando los elementos dentro de un vector
Programación de Gráficos en R
Ordenar un vector y seleccionar un elemento de un vector
Shiny

La función Sample
Esta función tiene como finalidad tomar una muestra de tamaño
especificado de los elementos de un vector “x” extrayéndolos con reemplazo
o sin reemplazo. Ésta es extremadamente útil para la aleatorización en
diseños de experimentos, en simulación y en pruebas de hipótesis. Veamos
un ejemplo: Sea “y” un vector numérico cualquiera, el cual queremos
extraer una muestra o varias de ellas, bajo diferentes condiciones.

y=c(8,3,5,7,6,6,8,9,2,3,9,4,10,4,11)
x1=sample(y)
x2=sample(y)

Los anteriores ejemplos fueron invocados considerando que han sido


extraı́dos sin reemplazo. Ahora, podemos especificar el tamaño de la
muestra que deseemos como segunda opción dentro de sus argumentos, es
decir:
args(sample)
x4=sample(y,30)

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R Las Matrices
Matrices Etiquetando las filas y columnas de una matriz
Tabla de datos (Dataframes) Las funciones rbind y cbind
Programación de Gráficos en R
Shiny

Las matrices
Existen diferentes formas de crear o generar una matriz. Podemos crear uno
directamente utilizando la función matrix de la siguiente manera:
Veamos primero sus argumentos para invocación:
args(matrix)
Ejemplo
A=matrix(c(1,2,3,4,5,6,7,8,9),nrow=3)
Ahora del ejemplo, se desea verificar que el objeto “A” es una matriz y que
su dimensión es (3, 3), empleamos las funciones class() y attributes()
respectivamente:

Una manera de transformar un vector en una matrix es utilizando la función


“dim()” es decir:
vector=c(1,2,3,4,4,3,2,1)
dim(vector)=c(4,2)

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R Las Matrices
Matrices Etiquetando las filas y columnas de una matriz
Tabla de datos (Dataframes) Las funciones rbind y cbind
Programación de Gráficos en R
Shiny

Etiquetando las filas y columnas de una matriz


Sea una matriz 4 x 5 de enteros aleatorios de una distribución de Poisson
con media 2. Además supóngase que las filas se refieren a cuatro ensayos
distintos de un experimento que se está realizando. Para hacer esto posible
se utiliza la función rownames(). La ventaja de utilizar rownames es que
dentro de sus argumentos se encuentra la opción prefix(), la cual reduce el
tiempo de trabajo.
X=matrix(rpois(20,2),nrow=4)
rownames(X)=rownames(X,[Link]=FALSE,prefix=“Ensayo.”)
Adicional se supondrá que los cuatro ensayos realizados fueron a cinco
drogas distintas (Dolex, Ibuprofeno, Advil, Noraver y Distran) para tratar
el malestar general.
[Link]=c(“Dolex”, “Ibuprofeno”, “Advil”, “Noraver”,
“Dristan”)
colnames(X)=[Link]

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R Las Matrices
Matrices Etiquetando las filas y columnas de una matriz
Tabla de datos (Dataframes) Las funciones rbind y cbind
Programación de Gráficos en R
Shiny

Las funciones rbind y cbind


Estas dos funciones son muy útiles al querer agregar ya sea una fila o una
columna adicional a una matriz previamente creada. La función rbind()
agrega vectores fila a la matriz y la función cbind() agrega vectores
columna a la matriz. Veamos algunos ejemplos:
Dadas las matrices A y B, las cuales están definidas ası́:
A=matrix(c(2,6,7,9),2)
B=matrix(c(1,2,3,8),2)
Para agregar un vector fila a la matriz A y un vector columna a la matriz
B, hacemos lo siguiente:
a1=matrix(c(10,13),1,2)
A=rbind(A,a1)
b1=matrix(c(10,13),2,1)
B=cbind(B,b1)

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R Importando dataframes y análisis numérico
Vectores en R Subscritos e ı́ndices para Dataframe
Matrices Usando condicionales lógicos para seleccionar filas de una ta
Tabla de datos (Dataframes) Otro clase de extracciones para una tabla de datos
Programación de Gráficos en R Clasificaciones y uso de la función split()
Shiny

Importando dataframes y análisis numérico


Uno de los temas más importantes que hay que dominar en el lenguaje R,
es saber entrar, modificar e invocar una tabla de datos. En R esto se conoce
como dataframes. Un dataframe es un objeto con filas y columnas. Las filas
contienen diferentes observaciones del estudio, o medidas del experimento.
Las columnas contienen los valores de las diferentes variables de estudio.
Veamos un ejemplo de una tabla de datos, la cual se encuentra fuera del
entorno de R, esta tabla de datos trabaja sobre un estudio a gusanos en
diferentes condiciones ambientales y de terreno. Invoquemos tal archivo
mediante la función [Link](), de la siguiente manera:
worms=[Link](“C:/Users/RAFAEL RUIZ/Google Drive/Estadı́stica

Computacional.2014/Datasets/[Link]”,header=T)


worms=[Link](file = “[Link]”, header = TRUE)

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R Importando dataframes y análisis numérico
Vectores en R Subscritos e ı́ndices para Dataframe
Matrices Usando condicionales lógicos para seleccionar filas de una ta
Tabla de datos (Dataframes) Otro clase de extracciones para una tabla de datos
Programación de Gráficos en R Clasificaciones y uso de la función split()
Shiny

Subscritos e ı́ndices para Dataframe


Recordemos que cuando querı́amos extraer un elemento de un vector
escribı́amos: nombre del vector [posición]. Ahora para extraer un elemento o
un conjunto de ellos de una tabla de datos o dataframe, escribimos: nombre
del vector [posición fila, posición columna].
Veamos y analicemos la salida de algunos ejemplos aplicados a “worms”:
worms[3,6]
worms[14:19,7]
worms[1:5,2:3]
worms[,c(1,5)]

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R Importando dataframes y análisis numérico
Vectores en R Subscritos e ı́ndices para Dataframe
Matrices Usando condicionales lógicos para seleccionar filas de una ta
Tabla de datos (Dataframes) Otro clase de extracciones para una tabla de datos
Programación de Gráficos en R Clasificaciones y uso de la función split()
Shiny

Ordenando Dataframes
Es muy común ordenar una tabla de datos por filas, caso contrario para las
columnas. Si el objetivo es ordenar los datos por filas, especificamos la
función order() en el primer subscrito. Por ejemplo si deseamos ordenar de
menor a mayor la variable “Slope”, se escribe en el prompt, lo siguiente:
worms[order(Slope),]

Usando condicionales lógicos para seleccionar filas de una tabla de datos


Dado el caso en que la tabla de datos contenga una variable con
condicionales lógicos, es posible seleccionar o extraer dichas filas que
contenga tal condicional, ya sea TRUE o FALSE. Es decir:
worms[Damp == T,]

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R Importando dataframes y análisis numérico
Vectores en R Subscritos e ı́ndices para Dataframe
Matrices Usando condicionales lógicos para seleccionar filas de una ta
Tabla de datos (Dataframes) Otro clase de extracciones para una tabla de datos
Programación de Gráficos en R Clasificaciones y uso de la función split()
Shiny

Otro clase de extracciones para una tabla de datos


Como se puede observar en el “dataframe” de “worms” hay tres tipos de
variables: numéricas, de caracteres y lógicas. Mediante la función sapply
podremos extraer cada una de ellas por separado.
worms[sapply(worms,[Link])]
worms[sapply(worms,[Link])]
worms[sapply(worms,[Link])]
Ahora si por ejemplo quisiéramos remover todas las filas que contengan
“Grassland” de la variable “Vegetation”, se emplea el sı́mbolo lógico ! que
significa NO.
worms[!(Vegetation==“Grassland”),]

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R Importando dataframes y análisis numérico
Vectores en R Subscritos e ı́ndices para Dataframe
Matrices Usando condicionales lógicos para seleccionar filas de una ta
Tabla de datos (Dataframes) Otro clase de extracciones para una tabla de datos
Programación de Gráficos en R Clasificaciones y uso de la función split()
Shiny

Clasificaciones y uso de la función split


Generalmente, aunque los datos con los que se quiere trabajar están dados
en tablas, no están organizados de la manera que se pretende trabajar sobre
ellos. La función split(), permite clasificar los datos, tı́picamente dados
como un vector, o como un data frame. Para explicar el uso de esta función
se recurrirá a un ejemplo.
Estación Anio Enero Febrero Marzo
E1 1978 54 38.5 NA
E1 1979 21.5 21 38.5
E1 1980 81 31 4
E1 1982 37.5 NA 30
E2 1979 NA NA 155
E2 1980 105.2 17.5 246.3
E2 1981 60.3 3.2 100
E3 1979 10.8 30.3 60.6
E3 1980 10.1 NA 70.6
E3 1981 20.2 40.4 80.6
E3 1982 20.3 50.5 90.6
MSc. Rafael Roberto Ruiz Escorcia
Introducción
Empezar a trabajar con R Importando dataframes y análisis numérico
Vectores en R Subscritos e ı́ndices para Dataframe
Matrices Usando condicionales lógicos para seleccionar filas de una ta
Tabla de datos (Dataframes) Otro clase de extracciones para una tabla de datos
Programación de Gráficos en R Clasificaciones y uso de la función split()
Shiny

Clasificaciones y uso de la función split


Supóngase ahora que se desea tener la misma información pero clasificada
por años. Con este propósito se puede emplear la función split()
mls=split(tt[3:5],tt$Anio)
Solo para mostrar la potencia del lenguaje con estas operaciones, supóngase
que se quiere aplicar una operación a cada una de las tablas de la lista
resultante, el promedio por columnas o la suma por renglones, por ejemplo.
Dado que se tata de una lista, podemos utilizar cualquiera de las funciones
lapply() o sapply(), como se muestra a continuación.
sapply(mls, colMeans, [Link] = T)

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R Importando dataframes y análisis numérico
Vectores en R Subscritos e ı́ndices para Dataframe
Matrices Usando condicionales lógicos para seleccionar filas de una ta
Tabla de datos (Dataframes) Otro clase de extracciones para una tabla de datos
Programación de Gráficos en R Clasificaciones y uso de la función split()
Shiny

Clasificación y operación: las funciones by() , aggregate() y tapply()


La función by(), básicamente tiene tres argumentos principales: el objeto al
cual se aplica -tı́picamente un data frame-, el factor o vector usado para
clasificar y la función que se aplica a cada uno de los elementos resultantes
de la clasificación, y puede además tener argumentos adicionales, tales
como [Link], que serán pasados a la función que se aplicará.
by(tt[, 3:5], tt$Anio, colMeans, [Link] = T))
Una forma diferente de realizar la misma tarea del ejemplo anterior, es
mediante la función aggregate(), como se muestra a continuación.
aggregate(tt[, 3:5], list(anio = tt$Anio), mean, [Link] = T)
Finalmente, en este tipo de funciones está la función tapply(), que efectúa
el mismo tipo de operaciones de clasificación y operación, pero actúa sobre
un vector y no sobre un data frame.
tapply(tt$Marzo, list(tt$Anio, tt$Estacion), mean, [Link] = T)

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R Importando dataframes y análisis numérico
Vectores en R Subscritos e ı́ndices para Dataframe
Matrices Usando condicionales lógicos para seleccionar filas de una ta
Tabla de datos (Dataframes) Otro clase de extracciones para una tabla de datos
Programación de Gráficos en R Clasificaciones y uso de la función split()
Shiny

Mejorar la presentación de las salidas de los resultados


En R existen múltiples paquetes (librerı́as) para generar las salidas de R en
diversos formatos. En particular, el paquete sjPlot permite mejorar la
presentación de las salidas de los resultados con las siguientes funciones.
library(sjPlot)
[Link](Estacion)
[Link](Estacion,Anio)
[Link](Estacion,Anio,[Link]=T,[Link] = T)

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices Gráficos de dispersión
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Generalidades
Las diferentes instrucciones de R para realizar gráficos, que forman parte de
los diferentes paquetes, se pueden dividir en:
Funciones gráficas. Permite realizar diferentes tipos de gráficos y
tienen sus propios argumentos especı́ficos.
Complementos gráficos. Son también funciones que permiten añadir
a los gráficos lı́neas, textos, flechas, leyendas, etiquetas, etc., y también
tienen sus propios argumentos especı́ficos.
Argumentos generales. Son argumentos que se pueden usar en las
funciones y complementos gráficos anteriores, además de los
argumentos especı́ficos de cada una de ellas.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices Gráficos de dispersión
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Generalidades
El siguiente esquema resume la estructura de uno de los paquetes para
graficar:

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices Gráficos de dispersión
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Colores
Con la función colors(), que viene en el paquete básico, es posible obtener
un listado de los 657 colores disponibles.
Existen otras funciones fuera de los paquetes básicos que me muestran un
sin número de opciones de paletas de colores. Por ejemplo:
1 La función colorTable() del paquete fBasics12 (Wuertz, 2011)
permite ver los números de los diferentes tipos de colores.
2 La función [Link]() del paquete DAAG (Maindonald, 2011)
permite ver los nombres de los diferentes tipos de colores: “single” son
los colores que no tienen diferentes intensidades, “shades” son los que
si tienen diferentes intensidades y “gray” es para ver la escala de
grises.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices Gráficos de dispersión
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Gráficos de dispersión
Se utilizan con mucha frecuencia, y representan dos variables cuantitativas
en un sistema de coordenadas rectangulares. La función para realizar este
tipo de gráfico es plot()
Por ejemplo se usará el conjunto de datos iris, y se representarán dos
variables con relación lineal entre ellas: [Link] y [Link].
Para el gráfico de dispersión más simple, utilizamos la función plot() sin
hacer ningún tipo de modificaciones a sus argumentos. La función
“par(ps=15)” permite definir el tamaño de la letra.
Ahora, al gráfico anterior le iremos añadiendo y modificando ciertos
elementos, por ejemplo si existen varios datos en el mismo punto, con la
función “sunflowerplot()” es posible que pinte tantas rayas como número
de datos coinciden en el mismo punto.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices Gráficos de dispersión
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Ejemplo
Usando el mismo conjunto de datos, veremos una situación un poco más
complicada. Se trata de una gráfica similar a la anterior, con la diferencia
en la que queremos resaltar diferentes grupos de datos. Las variables de
interés son: [Link] y [Link]. La función “locator( )” permite
obtener las coordenadas de cualquier punto que se señale sobre el plano de
la gráfica con el ratón y situar el ángulo superior izquierdo de la leyenda
sobre él. El primer argumento de “locator(n)” establece el número
máximo de objetos que se desea ubicar.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices Gráficos de dispersión
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

plot(iris[Species==“setosa”,“[Link]”],iris[Species==“setosa”,
“[Link]”],xlim=c(0,9),ylim=c(3,9),pch=19,col=“blue”,
xlab=“”,ylab=“”,bty=“l”)

points(iris[Species==”virginica”,”[Link]”],
iris[Species==”virginica”,”[Link]”],pch=19,col=”green”)

points(iris[Species==”versicolor”,”[Link]”],
iris[Species==”versicolor”,”[Link]”]
,pch=21,bg=red”)

title(main=”Longitud de Pétalo vs Longitud de sépalo”


,xlab=”Longitud de pétalo (cm)”, ylab=”Longitud de sépalo (cm)”,
[Link]=2,[Link]=2,[Link]=1.5)
legend(locator(1),c(”setosa”,”virginica”,”versicolor”),
pch=c(19,19,19),col=c(”blue”,”green”,red”))

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices Gráficos de dispersión
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Paquetes que permiten realizar varios tipos de gráficos básicos


Hay algunos paquetes en R que tienen un formato de ventanas, con
diferentes menús, que permiten realizar algunos de los gráficos mostrados
anteriormente. Por ejemplo: R Commander y GrapheR. El primero es el
más popular.
Para utilizar R Commander hay que instalar el paquete “Rcmdr”
(Fox 2005, 2007; Fox y col., 2012). En general, al mismo tiempo se
instalan automáticamente todos los paquetes dependientes o
complementarios necesarios para un funcionamiento correcto.
Normalmente, cuando se arranca por primera vez instala más paquetes,
que son necesarios para que funcione.
El paquete “GrapheR” (Hervé, 2011;2012) es un entorno que permite
al usuario dibujar gráficos sin tener conocimientos de R y que usa la
plataforma GUI. Se pueden hacer seis tipos de gráficos: histogramas,
de cajas, barras, circulares, curvas y gráficos de dispersión.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices Gráficos de dispersión
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Actividad
Para el conjunto de datos ChickWeight construir un histograma para la
variable “weight”, elabore un diagrama de cajas para la variable
“weight” separada por la variable grupo “Diet”. Para este último gráfico
¿existen datos atı́picos o “outliers”? si es ası́; indique cuales son. Recuerde
que: Dentro de los gráficos deberá tener en cuenta agregarle el tı́tulo
principal, etiquetar los ejes y darle un color personalizado.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices Gráficos de dispersión
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Representaciones interactivas para páginas web.


La aplicación de Interface de Programación (API) de visualización de
Google permite realizar representaciones dinámicas, las cuales se pueden
incorporar a páginas web. El paquete “googleVis” (Gesmann y de
Castillo, 2011; 2012) proporciona una interfaz entre R y la API de
visualización de Google. Es necesario tener conexión a internet.

La función gvisMotion() del paquete “googleVIs” prepara objetos que


luego pueden ser representados en forma de gráficos dinámicos en páginas
web. Con el argumento idvar se especifica la variable de identificación. Con
timevar se define la variable que contiene la información de tiempo. Existe
otro argumento [Link]=“ %Y/ %m/ %d”, que permite definir el
formato de tiempo, en el caso de que no fueran años.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices Gráficos de dispersión
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

library(googleVis)

datos=read.csv2(“Banco [Link]”,header=TRUE,
encoding=“latin1”)

G = gvisMotionChart(datos, idvar = “Region”, timevar = “Year”)

plot(G)

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices Gráficos de dispersión
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

La función gvisAnnotated del paquete “googleVis”, permite representar


series temporales. En el archive [Link] hay datos del ángulo entre el sol
y la luna, y la diferencia en metros entre pleamar y bajamar.

library(googleVis)

datos< −read.csv2(“[Link]”,header=TRUE, encoding=


“latin1”,fill=TRUE)

G2< −gvisAnnotatedTimeLine(datos, datevar=“Fecha”,


numvar=“[Link]”,idvar=“”,titlevar=“Fase”,
options=list(displayAnnotations=TRUE,legendPosition=
‘newRow‘,width=1000, height=500))

plot(G2)

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices Gráficos de dispersión
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Gráficos demográficos
library(plotrix)
Datos< −read.csv2(“Població[Link]”, header=TRUE,
encoding=“latin1”)
attach(Datos)
Los datos se transforman a porcentajes
s< −sum(H.1991) + sum(M.1991)+ sum(HE.1991)+
sum(ME.1991)
M1991< −M.1991*100/s
H1991< −H.1991*100/s
[Link](H1991,M1991,labels=Edad,
main=”Población española y extranjera en España en 1991”,
lxcol=”blue”,rxcol=”pink”,labelcex=1.2,
u nit=“ %”,gap=1,[Link]=T,
[Link]=c(“Hombres”,“Edad”,“Mujeres”),
ndig=1,xlim=c(5,5))

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices Gráficos de dispersión
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

ggplot2
En ggplot2 se inicia una gráfica con la instrucción ggplot(), debemos
especificar explicitamente que base de datos usamos, este es el primer
argumento en la función ggplot. Una vez que creamos la base añadimos
capas, y dentro de aes() escribimos las variables que queremos graficar y el
atributo de la gráfica al que queremos mapearlas.
La función geom point() añade una capa de puntos, hay muchas funciones
geometrı́as incluı́das en vggplot2 geom line(), geom boxplot(),
geom histogram() Cada una acepta distintos argumentos para mapear
las variables en los datos a caracterı́sticas estéticas de la gráfica. En el
siguiente ejemplo mapeamos displ al eje x, hwy al eje y, pero
geom point() nos permite representar más variables usando la forma,
color y/o tamaño del punto. Esta flexibilidad nos permite entender o
descubrir patrones más interesantes en los datos.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices Gráficos de dispersión
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Ejemplo
Usaremos el conjunto de datos mpg que se incluye en R.

glimpse(mpg)

ggplot(data = mpg) +
geom point(mapping = aes(x = displ, y = hwy))

ggplot(mpg) +
geom point(aes(x = displ, y = hwy, color = class))

Para realizar un Boxplot

ggplot(mpg, aes(x = reorder(class, hwy), y = hwy)) +


geom boxplot()

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Shiny

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Crea una aplicación Shiny vacı́a


Todas las aplicaciones de Shiny siguen la misma plantilla:
Agregue una lı́nea en su aplicación para cargar los datos en una variable
llamada bcl.
bcl=[Link](“[Link]”, stringsAsFactors = FALSE)
library(shiny)
ui < − fluidPage()
server < − function(input, output) {}
shinyApp(ui = ui, server = server)

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Construye la interfaz de usuario básica


Puede colocar cadenas R dentro fluidPage() para renderizar texto.

fluidPage(“BC Liquor Store”, “prices”)

Toda la interfaz de usuario se construirá pasando argumentos separados por


comas a la fluidPage()función. Al pasar texto regular, la página web
simplemente renderizará aburrido texto sin formato.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Agregar texto formateado y otros elementos HTML


Si queremos que nuestro texto tenga el mejor formato, Shiny tiene muchas
funciones que son envoltorios de etiquetas HTML que dan formato al texto.
Podemos usar la h1()función para un encabezado de nivel superior,
h2()para un encabezado secundario, strong() para hacer que el texto sea
negrita, em()para hacer que el texto esté en cursiva. También hay
funciones que son envoltorios de otras etiquetas HTML, como br()un salto
de lı́nea, img()una imagen, a()un hipervı́nculo y otros.
Al igual que una demostración, intente reemplazar la fluidPage()función
en su UI con
fluidPage(
h1(”My app”),
”BC”,
”Liquor”,
br(),
”Store”,
strong(”prices”)
)

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Agregar un tı́tulo
Podrı́amos agregar un tı́tulo a la aplicación con h1(), pero Shiny también
tiene una función especial titlePanel(). El uso titlePanel()no solo agrega
un gran texto visible similar al tı́tulo en la parte superior de la página, sino
que también establece el tı́tulo .oficial”de la página web. Esto significa que
cuando mira el nombre de la pestaña en el navegador, verá este tı́tulo.
Sobrescriba el fluidPage()que experimentó hasta el momento y
reemplácelo por el siguiente

fluidPage(
titlePanel(”BC Liquor Store prices”)
)

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Agregar un diseño
Es posible que haya notado que, hasta el momento, al agregar etiquetas de
texto y HTML, todo está desestructurado y los elementos simplemente se
acumulan uno debajo del otro en una columna. Usaremos
sidebarLayout()para agregar una estructura simple. Desarrollaremos
nuestra aplicación de modo que todas las entradas que el usuario pueda
manipular estén en la barra lateral, y los resultados se mostrarán en el
panel principal a la derecha.
Agregue el siguiente código después deltitlePanel()

sidebarLayout(
sidebarPanel(“nuestras entradas irán aquı́”),
mainPanel(“los resultados irán aquı́”)
)
Si quieres ser mucho más flexible con el diseño, puedes tener un control
mucho más preciso sobre dónde van las cosas usando un diseño de
cuadrı́cula. con los argumentos columny o fluidRow.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Agregue entradas a la interfaz de usuario


Las entradas son lo que les da a los usuarios una forma de interactuar con
una aplicación Shiny. Shiny proporciona muchas funciones de entrada para
admitir muchos tipos de interacciones que el usuario podrı́a tener con una
aplicación. Por ejemplo, textInput()se usa para permitir que el usuario
ingrese texto, numericInput() permite al usuario seleccionar un número,
dateInput()es para seleccionar una fecha, selectInput()es para crear un
cuadro de selección (también conocido como un menú desplegable).

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Agregue entradas a la interfaz de usuario


Todas las funciones de entrada tienen los mismos primeros dos argumentos:
inputIdy label. El inputIdserá el nombre que Shiny usará para referirse a
esta entrada cuando desee recuperar su valor actual. Es importante tener en
cuenta que cada entrada debe tener un único inputId. Si le das más de una
entrada con la misma identificación, Shiny desafortunadamente no te
dará un error explı́cito, pero tu aplicación no funcionará correctamente. El
labelargumento especifica el texto en la etiqueta de visualización que
acompaña al widget de entrada. Cada entrada también puede tener varios
otros argumentos especı́ficos para ese tipo de entrada. La única forma de
descubrir qué argumentos puede usar con una función de entrada especı́fica
es mirar su archivo de ayuda.
Ejercicio: lea la documentación de ??numericInpute intente agregar una
entrada numérica a la IU. Experimenta con los diferentes argumentos.
Ejecute la aplicación y vea cómo puede interactuar con esta entrada. Luego
prueba diferentes tipos de entradas.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Entrada por precio


La primera entrada que queremos tener es para especificar un rango de
precios (precio mı́nimo y máximo). Los tipos de entrada más sensatos para
esto son numericInput()o bien sliderInput()porque ambos se usan para
seleccionar números. Si usamos numericInput(), tendrı́amos que usar dos
entradas, una para el valor mı́nimo y otra para el máximo. Al mirar la
documentación sliderInput(), verá que al suministrar un vector de
longitud dos como valueargumento, se puede usar para especificar un rango
en lugar de un solo número. Esto suena como lo que queremos en este caso,
entonces lo usaremos sliderInput().

sliderInput(“priceInput”, “Price”, min = 0, max = 100,


value = c(25, 40), pre = “$”)

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Entrada para el tipo de producto


Para usar botones de opción o un cuadro de selección para nuestro
propósito. Usemos los botones de radio por ahora ya que solo hay unas
pocas opciones, con el argumento radioButtons()

radioButtons(“typeInput”, “Product type”,


choices = c(“BEER”, “REFRESHMENT”, “SPIRITS”,
“WINE”),
selected = “WINE”)

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Entrada para el paı́s


El tipo de entrada más apropiado en este caso es probablemente el cuadro
de selección. Mire la documentación selectInput()y cree una función de
entrada. Por ahora solo tenemos CANADÁ, FRANCIA, ITALIA como
opciones, y luego veremos cómo incluir todos los paı́ses.

selectInput(“countryInput”, “Country”,
choices = c(“CANADA”, “FRANCE”, “ITALY”))

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

library(shiny)
bcl< −[Link](“bcl−[Link]”, stringsAsFactors = FALSE)
ui < − fluidPage(
titlePanel(“BC Liquor Store prices”),
sidebarLayout(
sidebarPanel(
sliderInput(“priceInput”, “Price”, 0, 100, c(25, 40), pre = “$”),
radioButtons(“typeInput”, “Product type”,
choices = c(“BEER”, “REFRESHMENT”, “SPIRITS”,
“WINE”),
selected = “WINE”),
selectInput(“countryInput”, “Country”,
choices = c(“CANADA”, “FRANCE”, “ITALY”))
),
mainPanel(“los resultados irán aquı́”)
)
)
server < − function(input, output) {}
shinyApp(ui = ui, server = server)
MSc. Rafael Roberto Ruiz Escorcia
Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Agregue marcadores de posición para resultados


Después de crear todas las entradas, debemos agregar elementos a la
interfaz de usuario para mostrar las salidas. Las salidas pueden ser
cualquier objeto que R crea y que queremos mostrar en nuestra aplicación,
como un gráfico, una tabla o un texto.

Shiny proporciona varias funciones de salida, una para cada tipo de salida.
De manera similar a las funciones de entrada, todas las funciones de
outputIdsalida tienen un argumento que se usa para identificar cada
salida, y este argumento debe ser único para cada salida.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Salida para un diagrama de los resultados


En la parte superior del panel principal, tendremos un gráfico que muestra
cierta visualización de los resultados. Como queremos un argumento, la
función que utilizamos es plotOutput().
Agregue el siguiente código en mainPanel():

plotOutput(“coolplot”)
Esto agregará un marcador de posición en la interfaz de usuario para una
trama llamada coolplot.
Aquı́ hay una manera simple de crear un elemento UI que contendrá un
resultado de tabla: Agregue esta salida a la mainPanel() también. Tal vez
agregue un par br() entre las dos salidas, como un separador de espacio
para que no estén demasiado cerca el uno del otro y usamos la
tableOutput() función.
mainPanel(
plotOutput(“coolplot”),
br(), br(),
tableOutput(“results”)
)
MSc. Rafael Roberto Ruiz Escorcia
Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Implementar la lógica del servidor para crear salidas


Hasta ahora solo hemos escrito el código que se asignó a la uivariable (o el
código en el que se escribió ui.R). Esa suele ser la parte más fácil de una
aplicación Shiny. Ahora tenemos que escribir la server función, que
será responsable de escuchar los cambios en las entradas y crear salidas
para mostrarlas en la aplicación.
Si observa la función del servidor, notará que siempre se define con dos
argumentos: inputy output. ¡ Debes definir estos dos argumentos! Ambos
inputy output son objetos similares a listas. Como el nombre sugiere,
input es una lista que va a leer los valores de y output es una lista que va
a escribir los valores de a. input contendrá los valores de todas las entradas
diferentes en un momento dado, y output es donde guardará los objetos de
salida (como tablas y gráficos) para mostrar en su aplicación.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Construyendo una salida


Recuerde que creamos dos marcadores de posición de salida: coolplot (una
gráfica) y resultados (una tabla). Necesitamos escribir el código en R que le
dirá a Shiny qué tipo de diagrama o tabla mostrar. Hay tres reglas para
construir una salida en Shiny.
1 Guarde el objeto de salida en la outputlista (recuerde la plantilla de la
aplicación; cada función del servidor tiene un output argumento)
2 Construye el objeto con una render* función, ¿dónde *está el tipo de
salida?
3 Acceda a los valores de entrada usando la inputlista (cada función del
servidor tiene un input argumento)
La tercera regla solo es necesaria si desea que su salida dependa de alguna
entrada, ası́ que primero veamos cómo crear una salida muy básica usando
solo las dos primeras reglas. Crearemos un diagrama y lo enviaremos a la
salida de Coolplot .

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Construyendo una salida


El siguiente código muestra las dos primeras reglas: estamos creando una
gráfica dentro de la renderPlot() función y asignándola a la Coolplot en
la output lista. Recuerde que cada salida creada en la interfaz de usuario
debe tener una identificación única, ahora vemos por qué. Para adjuntar un
objeto R a una salida con ID x , asignamos el objeto R a output$x.
output$coolplot < − renderPlot(
plot(rnorm(100))
)
Como Coolplot se definió como a plotOutput, debemos usar la
renderPlot función, y debemos crear un gráfico dentro de la renderPlot
función.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Construyendo una salida


hora tenemos todo el conocimiento requerido para construir un diagrama
visualizando algún aspecto de los datos. Crearemos un histograma simple
del contenido de alcohol de los productos utilizando las mismas 3 reglas
para crear una salida de trazado.
Primero debemos asegurarnos de que ggplot2 esté cargado, ası́ que agregue
uno library(ggplot2) en la parte superior. A continuación, le
devolveremos un histograma de contenido de alcohol renderPlot().
Comencemos con solo un histograma de todos los datos, sin filtrar.

output$coolplot < − renderPlot({


ggplot(bcl, aes(Alcohol Content)) +
geom histogram()
})
Si ejecuta la aplicación con este código dentro de su servidor, deberı́a ver
un histograma en la aplicación. Pero si cambia los valores de entrada, aún
no sucede nada, por lo que el siguiente paso es filtrar el conjunto de datos
en función de las entradas.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Construyendo una salida


Recordemos que tenemos 3 entradas: priceInput, typeInput, y
countryInput. Podemos filtrar los datos en función de los valores de estas
tres entradas. Usaremos dplyrfunciones para filtrar los datos, ası́ que
asegúrese de incluirlos dplyren la parte superior. Luego, graficaremos los
datos filtrados en lugar de los datos originales.
output$coolplot < − renderPlot({
filtered < −
bcl % > %
filter(Price >= input$priceInput[1],
Price <= input$priceInput[2],
Type == input$typeInput,
Country == input$countryInput
)
ggplot(filtered, aes(Alcohol Content)) +
geom histogram()
})

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Construyendo la salida de la tabla


Como es una salida de tabla, debemos usar la renderTable()función.
Realizaremos exactamente el mismo filtrado en los datos, y luego
simplemente devolveremos los datos como un [Link]. Shiny sabrá que
necesita mostrarlo como una tabla porque está definido como a
tableOutput.

output$results < − renderTable({


filtered < −
bcl % > %
filter(Price >= input$priceInput[1],
Price <= input$priceInput[2],
Type == input$typeInput,
Country == input$countryInput
)
filtered
})

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Usar variables reactivas para reducir la duplicación de código


Es posible que haya notado que tenemos el mismo código que filtra el
conjunto de datos en dos lugares, una vez en cada función de
representación. Podemos resolver ese problema definiendo una variable
reactiva que contendrá el conjunto de datos filtrado, y usar esa variable en
las funciones de renderizado.
El primer paso serı́a crear la variable reactiva. El siguiente código debe
agregarse a la función del servidor.
filtered < − reactive({
bcl % > %
filter(Price >= input$priceInput[1],
Price <= input$priceInput[2],
Type == input$typeInput,
Country == input$countryInput
) })

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

server < − function(input, output) {


filtered < − reactive({
bcl % > %
filter(Price >= input$priceInput[1],
Price <= input$priceInput[2],
Type == input$typeInput,
Country == input$countryInput
)
})
output$coolplot < − renderPlot({
ggplot(filtered(), aes(Alcohol Content)) +
geom histogram()
})
output$results < − renderTable({
filtered()
})
}

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Use uiOutput() en nuestra aplicación para poblar los paı́ses


Podemos utilizar este concepto en nuestra aplicación para rellenar las
opciones del selector de paı́s. El selector de paı́s actualmente solo tiene 3
valores que ingresamos manualmente, pero en su lugar, podemos
representar el selector de paı́s en el servidor y usar los datos para
determinar qué paı́ses puede tener.
Primero tenemos que reemplazar el selectInput(“countryInput”, ...)en
la interfaz de usuario con

uiOutput(“countryOutput”)

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Errores apareciendo y desapareciendo rápidamente


Puede observar que cuando ejecuta la aplicación por primera vez, cada una
de las dos salidas arroja un mensaje de error, pero el mensaje de error
desaparece después de un segundo. El problema es que cuando la aplicación
se inicializa, filtered intenta acceder a la entrada del paı́s, pero aún no se
ha creado la entrada del paı́s. Después de que Shiny termine de cargarse
por completo y se genere la entrada del paı́s, filteredintenta acceder
nuevamente, esta vez es exitoso y el error desaparece.
Una vez que entendemos por qué ocurre el error, solucionarlo es simple.
Dentro de la filtered función reactiva, debemos verificar si la entrada del
paı́s existe, y si no, simplemente regresar NULL.

MSc. Rafael Roberto Ruiz Escorcia


Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

Errores apareciendo y desapareciendo rápidamente


filtered < − reactive({
if ([Link](input$countryInput)) {
return(NULL)
}
bcl % > %
filter(Price >= input$priceInput[1],
Price <= input$priceInput[2],
Type == input$typeInput,
Country == input$countryInput
) })
output$coolplot < −renderPlot({
if ([Link](filtered())) {
return()
}
ggplot(filtered(), aes(Alcohol Content)) +
geom histogram()
}) output$results < − renderTable({
filtered()
}) } MSc. Rafael Roberto Ruiz Escorcia
Introducción
Empezar a trabajar con R
Vectores en R
Matrices
Tabla de datos (Dataframes)
Programación de Gráficos en R
Shiny

shinydashboard
El paquete shinydashboard permite mejorar el diseño de la interfax ya
que admite una amplia variedad de componentes, incluidos widgets; gráficos
de base, retı́cula y cuadrı́cula; datos tabulados; medidores y cajas de valor;
y anotaciones de texto, son flexibles y fáciles de especificar los diseños
basados en filas y columnas con un nuevo tamaño inteligente para llenar el
navegador y adaptados para su visualización en dispositivos móviles,
Ofrecer diseños de guiones gráficos para presentar secuencias de
visualizaciones y comentarios relacionados.
ui < − dashboardPage(
dashboardHeader(title = “Tı́tulo”),
dashboardSidebar(
sidebarMenuOutput(“menu”)
),
dashboardBody()
)
server < − function(input, output) {
output$menu < − renderMenu({
sidebarMenu(
menuItem(“Menu item”, icon = icon(“calendar”))
)
})
}
shinyApp(ui, server)

MSc. Rafael Roberto Ruiz Escorcia

También podría gustarte