El Curso tiene como objetivo introducir al estudiante al lenguaje de programación R, para realizar análisis estadísticos.
Además de la instalación del R se va a instalar RStudio, el cual es un entorno de desarrollo integrado (IDE) que hace más fácil la manipulación de código de R.
Una vez instalado R y RStudio, se dará una introducción a varios temas estadísticos, y se mostrará como trabajar con R.
La página oficial del software estadístico R es : https://www.r-project.org/
Antes de realizar la instalación del R, ir a Sistema del equipo de Computo y verificar el número de bits que se tiene 64 0 32, ya que este dato se pregunta durante la instalación de R.
La instalación de R, RTools y RStudio, se realiza en el siguiente orden:
Instalar R versión 4.2.1 para Windows: https://cran.r-project.org/bin/windows/base/
Instalar RTools versión 4.2: https://cran.r-project.org/bin/windows/Rtools/
Instalar RStudio: https://rstudio.com/products/rstudio/download/
Nota:
Rtools es un paquete de cadena de herramientas que se utiliza para compilar paquetes R desde el origen (aquellos que necesitan compilación de código C/C++ o Fortran) y para compilar R en sí.
Cuando se utiliza la ubicación de instalación predeterminada, R y Rtools42 se pueden instalar en cualquier orden y Rtools42 se puede instalar cuando R ya se está ejecutando
R es un lenguaje de programación y de distribución libre que funciona en los sistemas operativos de Linux, Windows, Macintosh y Unix.
R fue creado en \(1992\) en Nueva Zelanda por Ross Ihaka y Robert Gentleman. Para ello decidieron adoptar la sintaxis del lenguaje S desarrollado por Bell Laboratories. Cabe mencionar que John Chambers y colaboradores en Laboratorios Bell (AT&T), actualmente Lucent Tecnologies, desarrollaron el lenguaje S en 1976.
En R se pueden crear y manipular objetos; objetos que pueden ser funciones o bases de datos, entre otros.
R es un ambiente que se presta para usar las funciones que han creado otros usuarios, y también para crear las propias.
Básicamente R se compone de un conjunto de paquetes, los cuales deben de ser descargados e instados en R. Dentro de los paquetes se encuentran funciones y bases de datos con los cuales se pueden trabajar. Como usuario de R, uno descarga e instala los paquetes que necesita para realizar el análisis estadístico que necesita.
Cuando se instala R, el usuario ya dispone de un conjunto de paquetes y con ello una gran variedad de funciones para realizar análisis estadísticos básicos. Además de los paquetes precargados el usuario puede disponer de más funciones en el siguiente enlace: http://www.r-project.org.
En el siguiente enlace se encuentra una lista de varios paquetes que pueden ser descargados e instalados en R:
http://web.archive.org/web/20160415144236/https://cran.r-project.org/web/views/
Ventajas que se tienen al utilizar R, como lenguaje de programación:
Es un programa con código totalmente libre.
Almacenamiento y manipulación de los objetos como vectores, matrices, data frames, listas, funciones, bases de datos, etc.
Es la herramienta más barata y de fácil acceso en estadística.
Se puede realizar cualquier tipo de análisis estadístico, así modelación, manipulación de grandes bases de datos y generación de gráficos, entre otros.
Las contribuciones de los usuarios, hacen de R una herramienta cada vez más completa y potente. Dichas contribuciones se encuentra disponibles en: http://cran.r-project.org/bin/windows/contrib/
Importente:
Las líneas de código generalmente se escriben en un script.
Las líneas en un script se comentan con el símbolo de #
Una vez que se crea un objeto (es decir, se le da un nombre) en R, es muy importante llamarlo con el nombre que se le dio, exactamente igual; ya que de lo contrario R nos dirá que el objeto que estamos llamando aún no ha sido definido.
Todo paréntesis, corchete o llave que se abra, se debe de cerrar, es decir, (), [], {}; de lo contrario R marcará error cuando se compile el código.
Al guardar un scrip se selecciona la codificación UTF-8, ya que hay acentos en el código.
Con la función searc() se muestran los paquetes cargados al R:
consultar los paquetes cargados con la función
search()
:) [1] ".GlobalEnv" "package:prettydoc" "package:writexl"
:) [4] "package:readxl" "package:agricolae" "package:prettyR"
:) [7] "package:forcats" "package:stringr" "package:dplyr"
:) [10] "package:purrr" "package:readr" "package:tidyr"
:) [13] "package:tibble" "package:ggplot2" "package:tidyverse"
:) [16] "package:DescTools" "package:DT" "package:tinytex"
:) [19] "package:knitr" "package:stats" "package:graphics"
:) [22] "package:grDevices" "package:utils" "package:datasets"
:) [25] "package:methods" "Autoloads" "package:base"
Por ejemplo, veamos los objetos del paquete MASS:
library(help=MASS) # Muestra todos los objetos que están en el paquete MASS
En el R existe varias formas para pedir ayuda en la instalación de paquetes, manejo de funciones, creación y manejo de objetos.
Para pedir ayuda con la función mean(), la cual calcula el promedio de una variable, se tienen las siguientes opciones:
?mean
help(mean)
help.search("mean") # Realiza una búsqueda más general
Para pedir ayuda sobre un símbolo matemático:
?"+"
Para pedir ayuda sobre la función for():
?"for"
Busca ayuda el internet:
RSiteSearch("powerTransform")
:) A search query has been submitted to https://search.r-project.org
:) The results page should open in your browser shortly
Otra función de utilidad es find(), la cual devuelve la ubicación en donde se pueden encontrar los objetos que se buscan.
find("mean") # Indica en que paquete se encuentra la función mean()
Para hacer uso de un paquete que aún no se encuentra instalado en R; primero se debe descargar y luego activar. Para esto se usan dos funciones: install.packages() y library(). Por ejemplo vamos a descargar y luego a activar el paquete readxl para leer bases de datos desde excel.
install.packages("readxl", dependencies = TRUE) # Instalación del paquete readxl
library("readxl") # Activación del paquete readxl
Objetos que se encuentra en el paquete readxl:
library(help=readxl)
Instalar los siguiente paquetes:
install.packages("dplyr")
library("dplyr")
install.packages("prettyR")
library("prettyR") # Para la función describe() y Mode()
library(help=prettyR)
install.packages("tidyverse")
library("tidyverse") # Paquete necesario para el uso de %>%
Ahora que ya sabemos instalar paquetes, se puede instalar el paquete sos y utilizar la función findFn() para realizar la búsqueda sobre algún tópico de estadística en el internet.
install.packages("sos")
library("sos")
findFn("regresion models") # Busca en el internet los paquetes que tienen funciones que realizan regresión lineal.
Funciones de utilidad en la instalación de paquetes:
Función para actualizar paquetes: update.packages()
Función para remover paquetes: remove.packages()
Para verificar si el paquete tinytex está instalado: tinytex:::is_tinytex()
Importante:
La instalación de los paquetes, install.packages(), se realiza solo una vez en R. Por esta razón se recomienda que una vez instalado un paquete, se comente esa línea de código con el símbolo de #.
La activación de los paquetes, library(), se realiza siempre que se abre el script de trabajo, y al inicio de la sesión de trabajo.
Otra forma de instalar un paquete en R, es utilizando la función install_github() del paquete remotes.
install.packages("remotes") # Instalación del paquete remotes
library("remotes") # Activación del paquete remotes
Objetos del paquete remotes:
library(help=remotes)
Instalación del paquete ggplot2 con la función install_github():
install_github("tidyverse/ggplot2") # Instalación del paquete ggplot2
library("ggplot2") # Activación del paquete ggplot2
El paquete ggplot2 es de mucha utilidad para la elaboración de gráficos.
Funciones de utilidad en R:
Funciones que dan información de R: sesionInfo(), Sys.getenv() y vertion().
Función que indica como citar al software R: citation.
En la creación y manipulación de objetos es importante considerar los siguientes puntos:
Una vez que se asigna un nombre a un objeto creado, ese objeto debe de ser llamado con dicho nombre.
Los objetos definidos en los paquetes instalados, deben de ser llamados con dicho nombre. Cuando haya conflictos de nombres, siempre podemos usar la siguiente sintaxis para evitar el conflicto: nombre_Paquete::objeto.
La función c() nos permite concatenar datos, generando con esto un vector.
x<-c(2,4,6,8,10) # c concatena números o letras.
y<-c(1,3,5,7,9)
x # Se muestran los elementos asignados al objeto x
:) [1] 2 4 6 8 10
y # Se muestran los elementos asignados al objeto y
:) [1] 1 3 5 7 9
# Suma: a+b
x+y
:) [1] 3 7 11 15 19
# Resta: a-b
x-y
:) [1] 1 1 1 1 1
#Multiplicación: a∗b
x*y
:) [1] 2 12 30 56 90
#División a/b
x/y
:) [1] 2.000000 1.333333 1.200000 1.142857 1.111111
# Potencia: a^b
x^y
:) [1] 2 64 7776 2097152 1000000000
# Raíz cuadrada: sqrt()
sqrt(x)
:) [1] 1.414214 2.000000 2.449490 2.828427 3.162278
Las funciones cumsum(), cumprod(), cummax() y cummin() regresan un vector que es el resultado de la suma, producto, mínimo y máximo de un vector dado.
x<-c(1,2,5) # Vector
diff(x) # diferencia entre elementos
:) [1] 1 3
cumsum(x) # suma acumulada
:) [1] 1 3 8
cumprod(x) # producto acumulado
:) [1] 1 2 10
cummax(x) # máximo del vector
:) [1] 1 2 5
cummin(x) # mínimo del vector
:) [1] 1 1 1
Creación de un objeto del tipo data.frame:
x1<-c(12,24,34,13,16,18,20,18,19,21) # Se concatenan números
x2<-c(50,34,67,60,50,60,70,72,59,50) # Se concatenan números
x3<-c("M","H","M","M","H","M","M","M","H","M") # Se concatenan letras
datos<-data.frame(Edad=x1,Peso=x2, Sexo=x3) # Se crea un objeto del tipo data.frame
kable(datos, caption = "Base de datos")
| Edad | Peso | Sexo |
|---|---|---|
| 12 | 50 | M |
| 24 | 34 | H |
| 34 | 67 | M |
| 13 | 60 | M |
| 16 | 50 | H |
| 18 | 60 | M |
| 20 | 70 | M |
| 18 | 72 | M |
| 19 | 59 | H |
| 21 | 50 | M |
La función attributes() muestra los nombres de las variables, el tipo de objeto creado y el número de renglones.
attributes(datos)
:) $names
:) [1] "Edad" "Peso" "Sexo"
:)
:) $class
:) [1] "data.frame"
:)
:) $row.names
:) [1] 1 2 3 4 5 6 7 8 9 10
La función str() muestra: el tipo de objeto creado, las dimensiones del objeto, los numbres de las variables y el tipo de variables.
str(datos)
:) 'data.frame': 10 obs. of 3 variables:
:) $ Edad: num 12 24 34 13 16 18 20 18 19 21
:) $ Peso: num 50 34 67 60 50 60 70 72 59 50
:) $ Sexo: chr "M" "H" "M" "M" ...
La función class() indica de qué tipo es el objeto creado:
class(datos)
:) [1] "data.frame"
La función dim muestra la dimensión del objeto creado:
dim(datos) # La función dim() se utiliza con objetos del tipo data.frame
:) [1] 10 3
Funciones para ver la parte inicial y final de una base de datos:
head(datos) # Muestra la parte inicial del data.frame
:) Edad Peso Sexo
:) 1 12 50 M
:) 2 24 34 H
:) 3 34 67 M
:) 4 13 60 M
:) 5 16 50 H
:) 6 18 60 M
tail(datos) # Muestra la parte final del objeto data.frame
:) Edad Peso Sexo
:) 5 16 50 H
:) 6 18 60 M
:) 7 20 70 M
:) 8 18 72 M
:) 9 19 59 H
:) 10 21 50 M
Formas de tener acceso a la variable edad:
datos$Edad
:) [1] 12 24 34 13 16 18 20 18 19 21
datos[,1]
:) [1] 12 24 34 13 16 18 20 18 19 21
Formas de tener acceso al primer valor de la variable edad:
datos$Edad[1]
:) [1] 12
datos[1,1]
:) [1] 12
Formas de tener acceso a un conjunto de valores de la variable edad
datos[1:3,1] # Muestra los primeros tres valores de la variable edad
:) [1] 12 24 34
datos[c(1,5),1] # Muestra el primer valor y el quinto valor de la variable edad
:) [1] 12 16
ls(): Lista todos los objetos del espacio de trabajo local en R.
rm(): Remueve objetos en una sesión de trabajo.
rm(list=ls()): Elimina todos los objetos creados en una sesión de trabajo.
attributes(): Atributos del objeto
str(): Atributos del objeto
class(): Tipo de objeto
View(): Visualizar una base de datos
Funciones para importar archivos desde excel:
Función read.csv() del paquete utils, archivo limitado por comas
Función read_excel() del paquete readxl
Función read.xlsx() del paquete xlsx
Función read.xlsx() del paquete openxlsx
La función args() muestra los argumentos de la función read_excel():
args(read_excel)
:) function (path, sheet = NULL, range = NULL, col_names = TRUE,
:) col_types = NULL, na = "", trim_ws = TRUE, skip = 0, n_max = Inf,
:) guess_max = min(1000, n_max), progress = readxl_progress(),
:) .name_repair = "unique")
:) NULL
En el caso de los dos primeros argumentos de read_excel(): + path es el argumento que especifica la ruta en donde se encuentra el archivo de excel.
Con la función read_excel() se va a importar el archivo “Variables_agricolas.xlsx” desde excel a R, y se va a crear el objeto “dat_variables”.
dat_variables<-read_excel("C:/Documetos MGM_OS_Dell/Documentos Maria_Dell/UAGro/Cursos_Taller_Impartidos/Curso-Taller_DGETA_2022/Variables_agricolas.xlsx")
class(dat_variables) #tbl es tabla
:) [1] "tbl_df" "tbl" "data.frame"
View(dat_variables) # Muestra la base de datos importada dat_variables
Base de datos importada a R:
head(dat_variables)
:) # A tibble: 6 × 24
:) Anio Idestado Nomestado Idddr Nomddr Idcader Nomcader Idmun…¹ Nommu…² Idciclo
:) <dbl> <dbl> <chr> <dbl> <chr> <dbl> <chr> <dbl> <chr> <dbl>
:) 1 2020 12 Guerrero 53 Atoyac 1 Técpan … 57 Técpan… 3
:) 2 2020 12 Guerrero 53 Atoyac 1 Técpan … 57 Técpan… 3
:) 3 2020 12 Guerrero 53 Atoyac 1 Técpan … 57 Técpan… 3
:) 4 2020 12 Guerrero 53 Atoyac 4 La Unión 68 La Uni… 3
:) 5 2020 12 Guerrero 53 Atoyac 4 La Unión 68 La Uni… 3
:) 6 2020 12 Guerrero 53 Atoyac 5 Petatlán 38 Zihuat… 3
:) # … with 14 more variables: Nomcicloproductivo <chr>, Idmodalidad <dbl>,
:) # Nommodalidad <chr>, Idunidadmedida <dbl>, Nomunidad <chr>, Idcultivo <dbl>,
:) # Nomcultivo.Sin.Um <chr>, Sembrada <dbl>, Cosechada <dbl>,
:) # Siniestrada <dbl>, Volumenproduccion <dbl>, Rendimiento <dbl>,
:) # Precio <dbl>, Valorproduccion <dbl>, and abbreviated variable names
:) # ¹Idmunicipio, ²Nommunicipio
:) # ℹ Use `colnames()` to see all variable names
Según su escala de medición:
Nominal: dicotómicas, politómicas (No existe orden en las categorías)
Ordinal (Existe orden en las categorías)
Métrica
De intervalo
De razón
Según el número de valores que contiene:
Continua (Números reales)
Discreta (Números enteros)
Según su papel en la investigación:
Independiente
Dependiente
Base de datos iris: This famous iris data set gives the measurements in centimeters of the variables sepal length and width and petal length and width, respectively, for 50 flowers from each of 3 species of iris. The species are Iris setosa, versicolor, and virginica.
data(iris)
attributes(iris)
:) $names
:) [1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species"
:)
:) $class
:) [1] "data.frame"
:)
:) $row.names
:) [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
:) [19] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
:) [37] 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
:) [55] 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
:) [73] 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
:) [91] 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
:) [109] 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
:) [127] 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
:) [145] 145 146 147 148 149 150
class(iris)
:) [1] "data.frame"
dim(iris)
:) [1] 150 5
Base de datos iris:
head(iris)
:) Sepal.Length Sepal.Width Petal.Length Petal.Width Species
:) 1 5.1 3.5 1.4 0.2 setosa
:) 2 4.9 3.0 1.4 0.2 setosa
:) 3 4.7 3.2 1.3 0.2 setosa
:) 4 4.6 3.1 1.5 0.2 setosa
:) 5 5.0 3.6 1.4 0.2 setosa
:) 6 5.4 3.9 1.7 0.4 setosa
Nombre de las columnas del objeto iris:
colnames(iris) # Nombre de las columnas del objeto iris
:) [1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species"
Creación del objeto dat_iris y uso de la función rename() para cambiar los nombres de las columnas de la base de datos iris.
dat_iris<-iris%>%
rename(Long.Sepal=Sepal.Length, Ancho.Sepal=Sepal.Width,
Long.Petalo=Petal.Length, Ancho.Petalo=Petal.Width,
Especies=Species)
Base de datos iris con nuevos nombres para las variables:
head(dat_iris)
:) Long.Sepal Ancho.Sepal Long.Petalo Ancho.Petalo Especies
:) 1 5.1 3.5 1.4 0.2 setosa
:) 2 4.9 3.0 1.4 0.2 setosa
:) 3 4.7 3.2 1.3 0.2 setosa
:) 4 4.6 3.1 1.5 0.2 setosa
:) 5 5.0 3.6 1.4 0.2 setosa
:) 6 5.4 3.9 1.7 0.4 setosa
Note que la función también str() muestra de que tipo son las variables del objeto dat_iris.
str(dat_iris)
:) 'data.frame': 150 obs. of 5 variables:
:) $ Long.Sepal : num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
:) $ Ancho.Sepal : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
:) $ Long.Petalo : num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
:) $ Ancho.Petalo: num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
:) $ Especies : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
class(dat_iris$Long.Sepal)
:) [1] "numeric"
class(dat_iris$Ancho.Sepal)
:) [1] "numeric"
class(dat_iris$Long.Petalo)
:) [1] "numeric"
class(dat_iris$Ancho.Petalo)
:) [1] "numeric"
Las categorías de una variable cualitativa, se pueden arreglar en una tabla:
| Categoría | Conteo |
|---|---|
| \(a_{1}\) | \(n_{1}\) |
| \(a_{2}\) | \(n_{2}\) |
| . | . |
| . | . |
| . | . |
| \(a_{k}\) | \(n_{k}\) |
A partir de esta información se puede calcular:
Frecuencias absolutas, \(n_{i}\), es decir, la cantidad de unidades por categoría (valores absolutos)
Frecuencias relativas, \(f_{i}=\frac{n_{i}}{n}\), es decir, la proporción de unidades por categoría (valores relativos), donde \(n=\sum n_{i}\).
Frecuencias relativas porcentuales, \(f_{i}*100\), es decir, la proporción de unidades por categoría expresada en porcentajes.
class(dat_iris$Especies)
:) [1] "factor"
resultado<-dat_iris %>%
select(Especies)%>%
group_by(Especies)%>%
summarise(Fre.abs=n())%>%
mutate(Fre.relativas=Fre.abs/sum(Fre.abs),
Fre.relativas.por=Fre.relativas*100)
kable(resultado, digits = 3, col.names = c("Especies", "Frecuencias absolutas", "Frecuencias relativas", "Frecuencias relativas porcentual"))
| Especies | Frecuencias absolutas | Frecuencias relativas | Frecuencias relativas porcentual |
|---|---|---|---|
| setosa | 50 | 0.333 | 33.333 |
| versicolor | 50 | 0.333 | 33.333 |
| virginica | 50 | 0.333 | 33.333 |
Si usamos la función attach() para manejar bases de datos las cosas se simplifian, ya que se puede trabajar directamente con las variables sin tener que escribir el nombre de la base de datos antes de la varaible, a continuación se muestra un ejemplo. (With attach() the database is attached to the R search path. This means that the database is searched by R when evaluating a variable, so objects in the database can be accessed by simply giving their names).
attach(dat_iris)
Dado \(n\) datos el promedio está dado por: \[ \bar{x}=\frac{1}{n}\sum_{i=1}^{n} x_{i} \]
x<-c(2,4,6)
mean(x)
:) [1] 4
La mediana, es un valor que divide a las observaciones en dos grupos con el mismo número de datos. Si el número de datos es par, se elige el promedio de los dos datos centrales. La mediana no es sensible a los valores extremos.
x<-c(2,4,6,8)
median(x)
:) [1] 5
La moda de un conjunto de datos, es el valor que ocurre con mayor frecuencia. Si todos los valores son diferentes, entonces no hay moda. Un conjunto de datos puede tener mas de una moda.
x<-c(2,4,6,8,2,2,6,6,6)
Mode(x)
:) [1] "6"
Ejemplo con la base de datos dat_iris:
mean(Ancho.Petalo) # Promedio
:) [1] 1.199333
median(Ancho.Petalo) # Mediana
:) [1] 1.3
Mode(Ancho.Petalo) # Moda
:) [1] "0.2"
Otra función que también reporta la Moda es Mode() y se encuentra en el paquete DescTools.
La varianza muestral está dada por
\[ S^2=\frac{1}{n-1}\sum_{i=1}^{n} (x_{i}-\bar{x})^2 \] La desviación estándar está dada por \[ \sqrt{S^2} \] Ejemplos:
var(Ancho.Petalo) # Varianza
:) [1] 0.5810063
sd(Ancho.Petalo) # Desviación estándar
:) [1] 0.7622377
Los cuantiles son puntos de corte tomados a intervalos de un conjunto de datos. El cuantil de orden \(p\) (con 0 < p < 1) es el valor d \(x_{p}\) que marca un corte de modo que una proporción \(p\) de valores es menor o igual que \(x_{p}\). Por ejemplo, el cuantil de orden \(0.30\) dejaría un \(30\%\) de valores por debajo.
Los cuantiles suelen usarse por grupos que dividen la muestra en partes iguales; entendidas estas como intervalos que comprenden la misma proporción de valores. Los más usados son:
Los cuartiles, que dividen la muestra en cuatro partes (cuantiles): 0.25 0.50 y 0.75.
Los quintiles, que dividen la muestra en cinco partes (cuantiles): 0.20; 0.40; 0.60 y 0.80.
Los deciles, que dividen la muestra en diez partes.
Los percentiles, que dividen la muestra en cien partes.
Ejemplos:
range(Ancho.Petalo) # La función range() reporta el máximo y el valor mínimo
:) [1] 0.1 2.5
diff(range(Ancho.Petalo)) # La función diff() reporta el rango=máximo-mínimo
:) [1] 2.4
IQR(Ancho.Petalo) # La función IQR() reporta el rango intercuartil es la diferencia de Q3-Q1
:) [1] 1.5
summary(dat_iris)
:) Long.Sepal Ancho.Sepal Long.Petalo Ancho.Petalo
:) Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
:) 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
:) Median :5.800 Median :3.000 Median :4.350 Median :1.300
:) Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
:) 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
:) Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
:) Especies
:) setosa :50
:) versicolor:50
:) virginica :50
:)
:)
:)
describe(dat_iris)
:) Description of dat_iris
:)
:) Numeric
:) mean median var sd valid.n
:) Long.Sepal 5.84 5.80 0.69 0.83 150
:) Ancho.Sepal 3.06 3.00 0.19 0.44 150
:) Long.Petalo 3.76 4.35 3.12 1.77 150
:) Ancho.Petalo 1.20 1.30 0.58 0.76 150
:)
:) Factor
:)
:) Especies setosa versicolor virginica
:) Count 50.00 50.00 50.00
:) Percent 33.33 33.33 33.33
:) Mode >1 mode
Otra función que también reporta un resumen de las estadísticas es Summarize() y se encuentra en el paquete FSA.
ggplot(dat_iris, aes(Long.Petalo))+
geom_histogram(fill = "blue")+ # Gráfico de barras
theme_bw()+ # Fondo del gráfico cuadriculado
labs(x="Lontitud del pétado",y="Conteos") # Cambio de nombre de los ejes
ggplot(dat_iris, aes(Long.Petalo)) +
geom_freqpoly(color="blue")+
theme_bw()+ # Fondo del gráfico cuadriculado
labs(x="Lontitud del pétado",y="Valores") # Cambio del nombre del eje y
ggplot(dat_iris, aes(Ancho.Petalo))+
geom_histogram(fill = "blue")+ # GRafico de barras
theme_bw()+ # Fondo del gráfico cuadriculado
labs(x="Ancho del pétado",y="Valores") # Camb
El diagrama de Tukey o cajas y bigotes, representa gráficamente la distribución de los valores de una variable. Las estadísticas que reporta el gráfico son:
El valor mínimo
El cuantil \(Q_{1}=0.025\)
La mediana
El cuantil \(Q_{3}=0.75\)
El valor máximo
ggplot(dat_iris, aes(y=Long.Petalo))+
geom_boxplot()+ # GRafico de barras
theme_bw()+ # Fondo del gráfico cuadriculado
labs(x="Longitud del pétado",y="Valores") # Cambio del nombre del eje y
ggplot(dat_iris, aes(y=Ancho.Petalo))+
geom_boxplot()+ # GRafico de barras
theme_bw()+ # Fondo del gráfico cuadriculado
labs(x="Ancho del pétado",y="Valores") # Cambio del nombre del eje y
ggplot(dat_iris, aes(x=Especies, color=Especies, fill=Especies))+
geom_bar()+ # GRafico de barras
theme_bw()+ # Fondo del gráfico cuadriculado
labs(y="Conteos") # Cambio del nombre del eje y