78
An´ alisis exploratorio de datos con R Diego Morales 10 de marzo de 2015 Diego Morales An´ alisis exploratorio de datos con R

Análisis exploratorio de datos con R y Shiny

Embed Size (px)

DESCRIPTION

Introduccion al manejo de R y Shiny

Citation preview

Page 1: Análisis exploratorio de datos con R y Shiny

Analisis exploratorio de datos con R

Diego Morales

10 de marzo de 2015

Diego Morales Analisis exploratorio de datos con R

Page 2: Análisis exploratorio de datos con R y Shiny

IntroduccionQue es R y donde obtenerlo ?

Que es R?Es un software libre especializado en analisis estadısticos; ademas esun lenguaje de programacion, es decir, no solo realiza innumerablesanalisis y pruebas sino tambien se pueden definir funciones propiasde cada usuario.

Donde obtener R?Este software se lo puede descargar gratuitamente desde : http://cran.r-project.org/bin/windows/base/

Diego Morales Analisis exploratorio de datos con R

Page 3: Análisis exploratorio de datos con R y Shiny

IntroduccionArea de trabajo

Diego Morales Analisis exploratorio de datos con R

Page 4: Análisis exploratorio de datos con R y Shiny

IntroduccionRStudio

Diego Morales Analisis exploratorio de datos con R

Page 5: Análisis exploratorio de datos con R y Shiny

Tipos de Datos y Objetos en RTipos de Datos

Numerico: Son datos que pueden contener numeros reales.

x<- 2

Logico: Son datos que solo permite los valores logicos deverdadero (T) o falso (F).

y<- T

Complejo: Son datos que pueden contener numeros complejos.

Z<- 1+1i

Caracter: Son datos que permiten introducir numero ycualquier tipo de caracter.

Y<- ”Hola”

Nota:Para saber el tipo de dato se utiliza la funcion ”mode()”

Diego Morales Analisis exploratorio de datos con R

Page 6: Análisis exploratorio de datos con R y Shiny

Tipos de Datos y Objetos en RTipos de Objetos

Vector: Cadenas unidimensionales de un tipo unico de valores(numericos, caracteres, etc.)

v<- c(1,3,5)

Matrices: Estructura bidimensional donde todos los datosdeben ser del mismo tipo.

m<- matrix(c(1,3,5,7),2,2)

Factores: Este tipo de objeto es fundamental para el analisisestadıstico pues es la forma como se tratan las variablescategoricas.

f<- factor(c(1,2,1,3,1))

Diego Morales Analisis exploratorio de datos con R

Page 7: Análisis exploratorio de datos con R y Shiny

Tipos de Datos y Objetos en RTipos de Objetos

Listas: objetos por colecciones de distintos tipos de objetos nonecesariamente de la misma dimension.

lista<- list(f,m,v)

Data Frames: Como una matriz pero pudiendo contenerdistintos tipos de datos. Es lo que clasicamente se ha llamadobase de datos o hoja de datos.

datos<- data.frame(anos=c(1.3,0.4,1.1,2.3,3.1,1.3),tipo=c(2,3,3,1,3,1),edad=c(22,21,34,42,17,43),

sexo=c(”H”,”M”,”H”,”H”,”M”,”H”))

Nota: para saber el tipo de objeto se utiliza la funcion class()”

Diego Morales Analisis exploratorio de datos con R

Page 8: Análisis exploratorio de datos con R y Shiny

Lazo FOR, IF

for(i in 1:100)instrucciones

if(consicion)instrucciones

Ejemplov<- c(1,2,1,3,1)for(i in 1 : 5)if(v[i] == 1)v[i] = 0v=0 2 0 3 0

Diego Morales Analisis exploratorio de datos con R

Page 9: Análisis exploratorio de datos con R y Shiny

Generar vectores

rep(x,n) : genera n valores iguales a x

seq(a,b,r) : genera numeros desde a hasta b con invremento r

seq(a,b,length=r) se generan r numeros entre a y b,igualmente espaciados.

cbind( x, y, z, ...) : genera una matriz con columnas x, y, z,...

rbind( x, y, z, ...) : genera una matriz con filas x, y, z,...

Diego Morales Analisis exploratorio de datos con R

Page 10: Análisis exploratorio de datos con R y Shiny

Generar variables aleatorias

rnorm(n): genera n valores aleatorios de una distribucionnormal estandar.

rnorm(n,a,b): genera n valores aleatorios de una distribucionnormal N(a,b)

runif(n): genera n valores aleatorios de una distribucionuniforme entre 0 y 1.

runif(n,a,b): genera n valores aleatorios de una distribucionuniforme entre a y b

Diego Morales Analisis exploratorio de datos con R

Page 11: Análisis exploratorio de datos con R y Shiny

Estadısticos descriptivos

Media: mean(variable)

Mediana: median(variable)

Moda: mad(variable)

Rango Intercuartil: IQR(variable)

Cuartiles: quantile(variable)

Cuartil: quantile(variable,0.25)

Varianza: var(variable)

Desviacion estandar: sd(variable)

Asimetrıa: skewness(variable), library(e1071)

Curtosis: kurtosis(variable),library(e1071)

Frecuencia: table(variable)

Frecuencia acumulada: cumsum(table(variable))

Mınimo y Maximo: min(), max()

Diego Morales Analisis exploratorio de datos con R

Page 12: Análisis exploratorio de datos con R y Shiny

Graficos

Dispersion: plot(variable)

Histograma: hist(variable)

Barras: barplot(variable)

Diagrama de caja: boxplot(variable)

Arboles de tallo y hoja: stem(variable)

par(new=TRUE): anade un grafico a uno actual

par(mfrow=c(1,2)): graficos multiples

Diego Morales Analisis exploratorio de datos con R

Page 13: Análisis exploratorio de datos con R y Shiny

Importar datos

Desde .txt:read.delim(”datos.txt”, header = TRUE, sep = ” t”)Desde .csv: read.csv(”datos.csv”, header = T, sep = ”; ”)Desde Excel

install.packages(′XLConnect′)library(XLConnect)readWorksheetFromFile(”Nombrearchivo.xlsx”, sheet =”Nombrehoja”)library(”RODBC”)data < −odbcConnectExcel2007(”Nombrearchivo.xlsx”)sqlTables(data)ejemplo1 < −sqlFetch(data, ”Nombrehoja”)odbcCloseAll()

Desde SPSS:read.spss(”datos.sav”, to.data.frame = TRUE),library(foreign)spss.get(′Base1.sav′, datevars =′ variable− fecha′)library(Hmisc)

Diego Morales Analisis exploratorio de datos con R

Page 14: Análisis exploratorio de datos con R y Shiny

Importar datos

Desde Access:library(RODBC)bd < −odbcConnectAccess(”bd1.mdb”)datos < −sqlQuery(bd, ”SELECT ∗ FROM tabla2”)

Diego Morales Analisis exploratorio de datos con R

Page 15: Análisis exploratorio de datos con R y Shiny

Nombres Data Frame

Cambiar un solo nombre: names(datos) <-gsub(”Nombre”,.otra.cosa”, names(datos))

Cambiar todos los nombres names(datos) <-c(”Nombre1”,”Nombre2”, ”Nombre3”......)

Diego Morales Analisis exploratorio de datos con R

Page 16: Análisis exploratorio de datos con R y Shiny

Metodos de Imputacion

pmm Predictive mean matching (any)norm Bayesian linear regression (numeric)

norm.nob Linear regression ignoring model error (numeric)norm.boot Linear regression using bootstrap (numeric)

norm.predict Linear regression, predicted values (numeric)mean Unconditional mean imputation (numeric)

2l.norm Two-level normal imputation (numeric)2l.pan Two-level normal imputation using pan (numeric)

2lonly.mean Imputation at level-2 of the class mean (numeric)2lonly.norm Imputation at level-2 by Bayesian linear regression (numeric)2lonly.pmm Imputation at level-2 by Predictive mean matching (any)

quadratic Imputation of quadratic terms (numeric)logreg Logistic regression (factor, 2 levels)

logreg.boot Logistic regression with bootstrappolyreg Polytomous logistic regression (factor, >= 2 levels)

polr Proportional odds model (ordered, >= 2 levels)lda Linear discriminant analysis (factor, >= 2 categories)

cart Classification and regression trees (any)rf Random forest imputations (any)ri Random indicator method for nonignorable data (numeric)

sample Random sample from the observed values (any)fastpmm Experimental: Fast predictive mean matching using C++

Diego Morales Analisis exploratorio de datos con R

Page 17: Análisis exploratorio de datos con R y Shiny

Shiny

Cada aplicacion tiene 2 componentes:

una secuencia de comandos de interfaz de usuario (UI, archivoui.R), que controla el diseno y aspecto de la aplicacion.

una secuencia de comandos del servidor (server.R), quecontiene las instrucciones para construir su aplicacion.

Diego Morales Analisis exploratorio de datos con R

Page 18: Análisis exploratorio de datos con R y Shiny

Shiny

Codigo mınimo

Diego Morales Analisis exploratorio de datos con R

Page 19: Análisis exploratorio de datos con R y Shiny

Shiny

Ejecutar una aplicacion

Crear una carpeta y colocar en ella los archivos ui.R y server.R

Cargar la libreria shiny

Ejecutar runApp(”nombre carpeta”)

Se utiliza runApp(”nombre”, display.mode = ”showcase”)para mostrar ;as lineas de codigo

Diego Morales Analisis exploratorio de datos con R

Page 20: Análisis exploratorio de datos con R y Shiny

Ejemplo Shiny

Diego Morales Analisis exploratorio de datos con R

Page 21: Análisis exploratorio de datos con R y Shiny

Ejemplo Shiny

Diego Morales Analisis exploratorio de datos con R

Page 22: Análisis exploratorio de datos con R y Shiny

Ejemplo Shiny

Diego Morales Analisis exploratorio de datos con R

Page 23: Análisis exploratorio de datos con R y Shiny

Shiny-Interfaz del Usuario

Se utiliza la funcion fluidPage para crear una pantalla que seajusta automaticamente a las dimensiones de la ventana delnavegador del usuario.

Se anade un tıtulo mediante titlePanel(’Tıtulo’)

Se utiliza sidebarLayout() para obtener un diseno de la barralateral, que incluye un panel lateral sidebarPanel() y un panelprincipal mainPanel().

Diego Morales Analisis exploratorio de datos con R

Page 24: Análisis exploratorio de datos con R y Shiny

Shiny-Interfaz del Usuario

Diego Morales Analisis exploratorio de datos con R

Page 25: Análisis exploratorio de datos con R y Shiny

Shiny-Interfaz del Usuario

Diego Morales Analisis exploratorio de datos con R

Page 26: Análisis exploratorio de datos con R y Shiny

Shiny-Interfaz del Usuario

Funciones para dar formato al texto e incluir imagenes

Funcion Descripcionp Define un parrafo

h1 Encabezado de primer nivel

h2 Encabezado de segundo nivel

h3 Encabezado de tercer nivel

h4 Encabezado de cuarto nivel

h5 Encabezado de quinto nivel

h6 Encabezado de sexto nivel

a hyper link

br Salto de lınea

span Porcion de texto con un estilo uniforme

code Formato de bloque de codigo

img Inserta una imagen

strong Texto en negrillas

em Texto en cursiva

Diego Morales Analisis exploratorio de datos con R

Page 27: Análisis exploratorio de datos con R y Shiny

Shiny-Interfaz del Usuario

Listas numeradas:

tags$ol(

tags$li("Primer item"),

tags$li("Segundo item"),

tags$li("Tercer item"))

Listas no numeradas:

tags$ul(

tags$li("Primer item"),

tags$li("Segundo item"),

tags$li("Tercer item"))

La funcion hr() adiciona una linea horizontal.

En las funciones de encabezado (h5() por ejemplo), elargumento aling permite alinear al centro (center) y a laderecha (right).

Diego Morales Analisis exploratorio de datos con R

Page 28: Análisis exploratorio de datos con R y Shiny

Shiny-Interfaz del Usuario

Estructura funcion span:

span("Texto", style = "color:black")

Para adjuntar una imagen, primero se debe crear una carpetacon nombre: www, dentro de la carpeta donde tenemos losarchivos ui.R y server.R. La sintaxis es la siguiente:

img(src="Nombre.png", height = 100, width = 100)

Estructura para links:

a("Nombre.",href = "http://www.google.com/")

Diego Morales Analisis exploratorio de datos con R

Page 29: Análisis exploratorio de datos con R y Shiny

Shiny-Interfaz del Usuario

Diego Morales Analisis exploratorio de datos con R

Page 30: Análisis exploratorio de datos con R y Shiny

Shiny-Interfaz del Usuario

Diego Morales Analisis exploratorio de datos con R

Page 31: Análisis exploratorio de datos con R y Shiny

Shiny-Diseno de Cuadrıcula

Para obtener una cuadrıcula se deben crear filas y columnas:

Las filas son creadas por la funcion fluidRow ().

Dentro de las filas se crean columnas definidas por la funcioncolumn().

Ancho: entre 1 y 12Offset: ancho de columna para trasladar la columna actualdesde el extremo de la columna anterior.

Diego Morales Analisis exploratorio de datos con R

Page 32: Análisis exploratorio de datos con R y Shiny

Shiny-Diseno de Cuadrıcula

Diego Morales Analisis exploratorio de datos con R

Page 33: Análisis exploratorio de datos con R y Shiny

Shiny-Diseno de Cuadrıcula

Diego Morales Analisis exploratorio de datos con R

Page 34: Análisis exploratorio de datos con R y Shiny

Shiny-Tabsets

Anade pestanas mediante la sintaxis:

tabsetPanel(

tabPanel("Pesta~na 1", "Contenido Pesta~na 1"),

tabPanel("Pesta~na 3", "Contenido Pesta~na 2"),

tabPanel("Pesta~na 2", "Contenido Pesta~na 3")

)

Diego Morales Analisis exploratorio de datos con R

Page 35: Análisis exploratorio de datos con R y Shiny

Shiny-Tabsets

Anade pestanas mediante la sintaxis:

tabsetPanel(

tabPanel("Pesta~na 1", "Contenido Pesta~na 1"),

tabPanel("Pesta~na 3", "Contenido Pesta~na 2"),

tabPanel("Pesta~na 2", "Contenido Pesta~na 3")

)

Diego Morales Analisis exploratorio de datos con R

Page 36: Análisis exploratorio de datos con R y Shiny

Shiny-Navlist

Anade una lista de navegacion en lugar de pestanas mediante lasintaxis:

navlistPanel(

"Conjunto A",

tabPanel("Componente 1","Contenido 1"),

tabPanel("Componente 2","Contenido 2"),

"Conjunto B",

tabPanel("Componente 3","Contenido 3"),

tabPanel("Componente 4","Contenido 4")

)

Diego Morales Analisis exploratorio de datos con R

Page 37: Análisis exploratorio de datos con R y Shiny

Shiny-Navbar Pages

Anade una multiples paginas:

navbarPage("Aplicaciıon Shiny",

tabPanel("Componente 1","contenido 1"),

tabPanel("Componente 2","contenido 2"),

tabPanel("Componente 3","contenido 3"))

Diego Morales Analisis exploratorio de datos con R

Page 38: Análisis exploratorio de datos con R y Shiny

Shiny-Navbar Pages

Para anadir sub-niveles:

navbarPage("Aplicaciıon Shiny",

tabPanel("Componente 1","contenido 1"),

tabPanel("Componente 2","contenido 2"),

navbarMenu("Componente 3",

tabPanel("contenido 3.1","contenido 3.1"),

tabPanel("contenido 3.2","contenido 3.2")))

Diego Morales Analisis exploratorio de datos con R

Page 39: Análisis exploratorio de datos con R y Shiny

Shiny-Ejercicio

Diego Morales Analisis exploratorio de datos con R

Page 40: Análisis exploratorio de datos con R y Shiny

Shiny-Ejercicio

Diego Morales Analisis exploratorio de datos con R

Page 41: Análisis exploratorio de datos con R y Shiny

Shiny-Ejercicio

Diego Morales Analisis exploratorio de datos con R

Page 42: Análisis exploratorio de datos con R y Shiny

Shiny-Ejercicio

Diego Morales Analisis exploratorio de datos con R

Page 43: Análisis exploratorio de datos con R y Shiny

Shiny-Ejercicio

Diego Morales Analisis exploratorio de datos con R

Page 44: Análisis exploratorio de datos con R y Shiny

Command Buttons:Acction-Submit

Action

actionButton("action", label = "Accion")

Submit

submitButton("Actualizar")

Diego Morales Analisis exploratorio de datos con R

Page 45: Análisis exploratorio de datos con R y Shiny

Command Buttons:Checkbox

Checkbox simple

checkboxInput("checkbox", label = "Opcion A",

value = TRUE)

Grupo checkbox

checkboxGroupInput("checkGroup",

label = h3("Gruopo Checkbox "),

choices = list("Opcion A" = 1,

"Opcion B" = 2,

"Opcion C" = 3),

selected = 1))

Diego Morales Analisis exploratorio de datos con R

Page 46: Análisis exploratorio de datos con R y Shiny

Command Buttons:Fecha

Fecha

dateInput("fecha", label = h3("Fecha"),

value = "2015-03-31")

Rango de fechas

dateRangeInput("fechas",

label = h3("Rango de Fechas"),

separator="a")

Diego Morales Analisis exploratorio de datos con R

Page 47: Análisis exploratorio de datos con R y Shiny

Command Buttons:Archivo-Texto de Ayuda

Archivo

fileInput("archivo", label = h3("Archivo"))

Texto de Ayuda

helpText("Nota: el texto de ayuda no es realmente

un boton de control, pero proporciona una manera

facil de a~nadir texto, junto a otros botones de

control.")

Diego Morales Analisis exploratorio de datos con R

Page 48: Análisis exploratorio de datos con R y Shiny

Command Buttons:Entrada numerica y de texto

Entrada numerica

numericInput("num", label = h3("Entrada numerica"),

value = 1)

Entrada de texto

textInput("texto", label = h3("Entrada de texto"),

value = "Texto...")

Diego Morales Analisis exploratorio de datos con R

Page 49: Análisis exploratorio de datos con R y Shiny

Command Buttons:Radio buttons y Select box

Radio buttons

radioButtons("radio", label = h3("Radio buttons"),

choices = list("Opcion 1" = 1, "Opcion 2" = 2,

"Opcion 3" = 3),selected = 1)

Select box

selectInput("select", label = h3("Select box"),

choices = list("Opcion 1" = 1, "Opcion 2" = 2,

"Opcion 3" = 3), selected = 1)

Diego Morales Analisis exploratorio de datos con R

Page 50: Análisis exploratorio de datos con R y Shiny

Command Buttons:Sliders

Sliders

sliderInput("slider1", label = h3("Sliders"),

min = 0, max = 200, value = 100),

sliderInput("slider2", h3("Sliders intervalo"),

min = 0, max = 100, value = c(25, 75))

Diego Morales Analisis exploratorio de datos con R

Page 51: Análisis exploratorio de datos con R y Shiny

Shiny-Ejercicio

Diego Morales Analisis exploratorio de datos con R

Page 52: Análisis exploratorio de datos con R y Shiny

Shiny-Outputs

server.R ui.R DescripcionrenderPlot({}) plotOutput() grafico

renderText({}) textOutput() texto

renderPrint({}) verbatimTextOutput(), imprime cualquiertextOutput(), etc output

renderTable({}) tableOutput() tabla

renderDataTable({}) dataTableOutput() tabla

renderUI({}) uiOutput() inputs Shiny

Diego Morales Analisis exploratorio de datos con R

Page 53: Análisis exploratorio de datos con R y Shiny

Shiny-Ejemplo1 Outputs

Diego Morales Analisis exploratorio de datos con R

Page 54: Análisis exploratorio de datos con R y Shiny

Shiny-Ejemplo1 Outputs

Diego Morales Analisis exploratorio de datos con R

Page 55: Análisis exploratorio de datos con R y Shiny

Shiny-Ejemplo1 Outputs

Diego Morales Analisis exploratorio de datos con R

Page 56: Análisis exploratorio de datos con R y Shiny

Shiny-Ejemplo2 Outputs

Diego Morales Analisis exploratorio de datos con R

Page 57: Análisis exploratorio de datos con R y Shiny

Shiny-Ejemplo2 Outputs

Diego Morales Analisis exploratorio de datos con R

Page 58: Análisis exploratorio de datos con R y Shiny

Shiny-Ejemplo2 Outputs

Diego Morales Analisis exploratorio de datos con R

Page 59: Análisis exploratorio de datos con R y Shiny

Shiny-Ejemplo Outputs

Diego Morales Analisis exploratorio de datos con R

Page 60: Análisis exploratorio de datos con R y Shiny

Shiny-Ejercicio 1

Diego Morales Analisis exploratorio de datos con R

Page 61: Análisis exploratorio de datos con R y Shiny

Shiny-Ejercicio 2

Diego Morales Analisis exploratorio de datos con R

Page 62: Análisis exploratorio de datos con R y Shiny

Shiny-Ejercicio 3

Diego Morales Analisis exploratorio de datos con R

Page 63: Análisis exploratorio de datos con R y Shiny

Shiny-Exportar

Diego Morales Analisis exploratorio de datos con R

Page 64: Análisis exploratorio de datos con R y Shiny

Shiny-Exportar

Diego Morales Analisis exploratorio de datos con R

Page 65: Análisis exploratorio de datos con R y Shiny

Shiny-Exportar csv

Diego Morales Analisis exploratorio de datos con R

Page 66: Análisis exploratorio de datos con R y Shiny

Shiny-Exportar Excel

Diego Morales Analisis exploratorio de datos con R

Page 67: Análisis exploratorio de datos con R y Shiny

Shiny-Mapas

Diego Morales Analisis exploratorio de datos con R

Page 68: Análisis exploratorio de datos con R y Shiny

Shiny-Mapas

Diego Morales Analisis exploratorio de datos con R

Page 69: Análisis exploratorio de datos con R y Shiny

Shiny-Compartir aplicaciones

Abrir gist.github.comCopiar y pegar el contenido de los archivos ui.R y server.RLos usarios pueden acceder a la aplicacion medianterunGist(”gist number”), donde gist number es el codigo queaparece al final de la direccion de la pagina Gist

Diego Morales Analisis exploratorio de datos con R

Page 70: Análisis exploratorio de datos con R y Shiny

Generacion automatica de reportes con R y LATEX

Estructura base para generar un documento en LATEX:

\documentclass[10pt,a4paper]{article}

\usepackage[utf8]{inputenc}

\usepackage[spanish]{babel}

\usepackage{amsmath}

\usepackage{amsfonts}

\usepackage{amssymb}

\usepackage{graphicx}

\begin{document}

\end{document}

Diego Morales Analisis exploratorio de datos con R

Page 71: Análisis exploratorio de datos con R y Shiny

Generacion automatica de reportes con R y LATEX

Crear un archivo .Rnw

Insertar la estructura base para generar un documento enLATEX

Redactar informe junto con lineas de codigos de R

Compilar

Diego Morales Analisis exploratorio de datos con R

Page 72: Análisis exploratorio de datos con R y Shiny

Generacion automatica de reportes con R y LATEX

Para insertar codigos de R se utilizan chunks que en forma generalse definen por:

<<>>=

Codigo de R

@

Por ejemplo,

<<>>=

data(PlantGrowth)

summary(PlantGrowth)

@

Da como resultado:

Diego Morales Analisis exploratorio de datos con R

Page 73: Análisis exploratorio de datos con R y Shiny

Generacion automatica de reportes con R y LATEX

La opcion echo=false oculta el codigo

<<echo=false>>=

data(PlantGrowth)

summary(PlantGrowth)

@

Diego Morales Analisis exploratorio de datos con R

Page 74: Análisis exploratorio de datos con R y Shiny

Generacion automatica de reportes con R y LATEX

La opcion results=hide oculta el resultado

<<results=hide>>=

data(PlantGrowth)

summary(PlantGrowth)

@

Diego Morales Analisis exploratorio de datos con R

Page 75: Análisis exploratorio de datos con R y Shiny

Generacion automatica de reportes con R y LATEX

La opcion fig=true incluye graficos

\begin{figure}[ht]

\centering

<<echo=false,fig=true>>=

boxplot(weight~group,ylab="Peso")

@

\caption{Boxplot}

\end{figure}

Diego Morales Analisis exploratorio de datos con R

Page 76: Análisis exploratorio de datos con R y Shiny

Generacion automatica de reportes con R y LATEX

Primer ejemplo

En este ejemplo se muestra la inclusion de algunos calculos estadısticos enun documento LATEX

> library(MASS)

> data(crabs)

> attach(crabs)

> summary(crabs[,4:7])

FL RW CL CW

Min. : 7.20 Min. : 6.50 Min. :14.70 Min. :17.10

1st Qu.:12.90 1st Qu.:11.00 1st Qu.:27.27 1st Qu.:31.50

Median :15.55 Median :12.80 Median :32.10 Median :36.80

Mean :15.58 Mean :12.74 Mean :32.11 Mean :36.41

3rd Qu.:18.05 3rd Qu.:14.30 3rd Qu.:37.23 3rd Qu.:42.00

Max. :23.10 Max. :20.20 Max. :47.60 Max. :54.60

Tambien se puede incluir un diagrama de caja de la variable FL agrupadamediante la variable sp

B O

1015

20

Figura 1: Boxplot

1

Diego Morales Analisis exploratorio de datos con R

Page 77: Análisis exploratorio de datos con R y Shiny

Generacion automatica de reportes con R y LATEX

La opcion results=tex incluye tablas

<<echo=F,results=tex>>=

library(xtable)

g<-lm(weight~group,data=PlantGrowth)

xtable(anova(g),"Analisis de varianza")

@

Diego Morales Analisis exploratorio de datos con R

Page 78: Análisis exploratorio de datos con R y Shiny

Generacion automatica de reportes con R y LATEX

La funcion Sexpr inserta resultados numericos dentro del texto

<<echo=F>>=

sw<-shapiro.test(residuals(g))

@

El valor del estadıstico de Shapiro--Wilks es

$W=\Sexpr{round(sw$statistic,3)}$

con $p=\Sexpr{round(sw$p.value,3)}$ por tanto

no rechazamos la hipotesis de normalidad de los errores.

Diego Morales Analisis exploratorio de datos con R