R es un lenguaje de programación creado con el fin de analizar y visualizar datos. El objetivo de este apartado es presentar una breve introducción a R.
Se podría decir que R no es más que una calculadora científica muy potente, por lo que naturalmente R puede manejar la arítmetica básica sin problemas.
# Suma
2 + 4
## [1] 6
# Resta
5 - 7
## [1] -2
# Multiplicación
7 * 3
## [1] 21
# División
7 / 4
## [1] 1.75
# Potenciación
5^3
## [1] 125
# Logaritmos
log10(100)
## [1] 2
# Exponenciales
exp(8)
## [1] 2980.958
# Valor absoluto
abs(-7)
## [1] 7
# Raíz Cuadrada
sqrt(26)
## [1] 5.09902
En R casi todo es un objeto, estamos hablando de números, cadenas de caracteres (palabras, oraciones) o incluso estructuras más complejas como el resultado de una gráfica o resúmenes estadísticos. Cómo crear objetos y asignar valores sera crucial.
Para crear un objeto simplemente le damos un nombre al objeto y le
asignamos un valor con el operador de asignación
<-
mi_objeto <- 71
Ahora cada vez que utilicemos mi_objeto en nuestro
código (salvo actualicemos el valor), estaremos usando su valor que en
este caso es 71.
mi_objeto
## [1] 71
Se pueden hacer operaciones con nuestros objetos
mi_objeto + 10
## [1] 81
mi_objeto2 <- 9
mi_objeto3 <- mi_objeto + mi_objeto2
Hay muchos diferentes tipos de valores que pueden ser asignados a un objeto, por ejemplo.
password <- "tacos"
Para reemplazar el valor de un objeto simplemente hay que volverlo asignar
password <- "doritos"
Aunque no lo parezca, cómo nombrar objetos puede ser algo de lo más difícil en R. Idealmente el nombre debe ser informativo y corto, lo cual no siempre es fácil. Hay 3 estilos en general para nombrar a un objeto (sobre todo para aquellos que constan de dos o más palabras)
mi_objeto <- "manzanas"
mi.objeto <- "manzanas"
miObjeto <- "manzanas"
En R se recomienda el uso de guión bajo sin embargo puedes usar cualquiera de los tres ejemplos, eso sí, elijas el que elijas, se constante.
Hay algunas limitantes a tomar en cuenta cuando se nombren objetos.
El nombre de los objetos no puede iniciar con un número
1objeto o iniciar con un punto y seguido de un número
.1objeto.
También se recomienda no usar caracteres alfanuméricos (&, ^, /,
!, etc) y nosotros que hablamos español, lo mejor es evitar acentuar
nuestros nombres y evitar el uso de la ñ. También hay
que evitar llamar a tu objeto como una “palabra reserveda”
(if, TRUE, NA) o funciones ya
existentes como exp, sqrt.
edad <- 45 # Variable numérica
nombre <- "Pedro" # Variable de caracter
estudiante <- FALSE # Variable lógica
En R, un escalar es un dato individual, representando un único valor. A diferencia de las estructuras de datos que contienen múltiples elementos, como vectores o matrices, un escalar en R es un valor único.
Algunas características clave de escalares en R incluyen:
Unidimensional: Aunque la mayoría de las estructuras de datos en R son multidimensionales, los escalares son unidimensionales, ya que representan un solo valor.
Homogeneidad de Tipo de Datos: Al igual que con otras estructuras en R, los escalares tienen un tipo de datos específico, como numérico, de caracteres o lógico.
Creación de Escalares:
# Ejemplo: Crear un escalar numérico
mi_escalar <- 42
# Ejemplo: Resultado de una operación
resultado <- 5 + 7
Aquí hay ejemplos de creación y operación con escalares en R:
# Crear escalares mediante asignación directa
edad <- 25
altura <- 1.75
nombre <- "Juan"
es_estudiante <- TRUE
# Realizar operaciones con escalares
suma <- edad + 5
nueva_altura <- altura * 1.1
En R, un vector es una estructura de datos unidimensional que contiene elementos del mismo tipo de datos, ya sea numérico, de caracteres o lógico. Los elementos de un vector están organizados secuencialmente, y cada elemento tiene un índice que indica su posición en el vector.
Aquí hay algunas características clave de los vectores en R:
Homogeneidad de Tipo de Datos: Todos los elementos de un vector deben ser del mismo tipo de datos. Por ejemplo, un vector puede contener solo números, solo caracteres o solo valores lógicos.
Longitud Fija: La longitud de un vector es fija cuando se crea, y no puede cambiarse sin crear un nuevo vector.
Acceso a Elementos: Los elementos de un vector se acceden mediante su índice. El índice en R comienza desde 1.
Creación de Vectores:
c(): Puedes crear un
vector combinando elementos con la función c(). # Ejemplo: Crear un vector numérico
mi_vector <- c(1, 2, 3, 4, 5)
: o
seq(): Puedes crear vectores de manera más concisa
usando la secuencia : o la función seq(). # Ejemplo: Crear un vector de 1 a 5 usando la secuencia
otro_vector <- 1:5
# Ejemplo: Suma de dos vectores
vec1 <- c(1, 2, 3)
vec2 <- c(4, 5, 6)
suma_vectores <- vec1 + vec2
length(): Devuelve la longitud del vector.sum(), mean(), max(),
min(): Calculan la suma, media, máximo, mínimo de los
elementos del vector.sort(): Ordena los elementos del vector.En R, una matriz es una estructura de datos bidimensional que almacena elementos del mismo tipo de datos en filas y columnas. Cada elemento de la matriz está identificado por su posición única, dada por el número de fila y el número de columna.
Características clave de las matrices en R:
Homogeneidad de Tipo de Datos: Todos los elementos de una matriz deben ser del mismo tipo de datos, ya sea numérico, de caracteres o lógico.
Estructura Bidimensional: Las matrices tienen dos dimensiones: filas y columnas, lo que las diferencia de los vectores unidimensionales.
Creación de Matrices:
matrix(): Puedes
crear una matriz especificando los datos, el número de filas y el número
de columnas. # Ejemplo: Crear una matriz numérica 2x3
mi_matriz <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 2, ncol = 3)
cbind() o
rbind(): Puedes crear una matriz combinando
vectores horizontalmente (cbind()) o verticalmente
(rbind()). # Ejemplo: Crear una matriz mediante cbind()
vec1 <- c(1, 2)
vec2 <- c(3, 4)
mi_matriz <- cbind(vec1, vec2)
Operaciones con Matrices: Las matrices en R admiten diversas operaciones matriciales, como la transposición, la multiplicación y la inversión.
Funciones Relacionadas con Matrices:
dim(): Devuelve las dimensiones (número de filas y
columnas) de la matriz.rownames() y colnames(): Permiten asignar
y recuperar nombres de filas y columnas, respectivamente.diag(): Crea una matriz diagonal.Ejemplo de creación y operación con una matriz en R:
# Crear una matriz numérica 2x3
mi_matriz <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 2, ncol = 3)
# Mostrar la matriz
print(mi_matriz)
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
# Acceder al elemento en la primera fila y segunda columna
print(mi_matriz[1, 2])
## [1] 3
# Realizar una operación matricial: transposición
transpuesta_matriz <- t(mi_matriz)
print(transpuesta_matriz)
## [,1] [,2]
## [1,] 1 2
## [2,] 3 4
## [3,] 5 6
En R, un arreglo es una estructura de datos multidimensional que puede contener elementos del mismo tipo de datos. A diferencia de las matrices, que son bidimensionales, los arreglos pueden tener más de dos dimensiones. Un arreglo en R se caracteriza por su forma, que está definida por el número de dimensiones y el tamaño en cada dimensión.
Características clave de los arreglos en R:
Multidimensionalidad: Los arreglos pueden tener más de dos dimensiones, lo que los hace aptos para almacenar datos en estructuras con formas más complejas.
Homogeneidad de Tipo de Datos: Al igual que en matrices y vectores, todos los elementos de un arreglo deben ser del mismo tipo de datos.
Creación de arreglos:
array(): Puedes crear
un arreglo especificando los datos, el número de dimensiones y el tamaño
en cada dimensión. # Ejemplo: Crear un arreglo tridimensional
mi_arreglo <- array(c(1, 2, 3, 4, 5, 6, 7, 8), dim = c(2, 2, 2))
Acceso a Elementos: Los elementos de un arreglo se acceden mediante índices en cada dimensión.
Funciones Relacionadas con arreglos:
dim(): Devuelve las dimensiones del arreglo.length(): Devuelve la longitud total del arreglo.aperm(): Permuta las dimensiones de un arreglo.Ejemplo de creación y operación con un arreglo en R:
# Crear un arreglo tridimensional
mi_arreglo <- array(c(1, 2, 3, 4, 5, 6, 7, 8), dim = c(2, 2, 2))
# Mostrar el arreglo
print(mi_arreglo)
## , , 1
##
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
##
## , , 2
##
## [,1] [,2]
## [1,] 5 7
## [2,] 6 8
# Acceder al elemento en la primera fila, segunda columna y segunda capa
print(mi_arreglo[1, 2, 2])
## [1] 7
# Calcular la suma a lo largo de la tercera dimensión
suma_tercera_dimension <- sum(mi_arreglo[, , 1])
print(suma_tercera_dimension)
## [1] 10
En R, una lista es una estructura de datos que puede contener elementos de diferentes tipos, incluidos vectores, matrices, otros tipos de listas, funciones y cualquier otro objeto de R. A diferencia de vectores y matrices, las listas permiten almacenar información heterogénea y pueden tener longitudes variables. Cada elemento en una lista se denomina componente.
Características clave de las listas en R:
Heterogeneidad de Tipo de Datos: Los elementos de una lista pueden ser de diferentes tipos de datos, permitiendo la mezcla de números, caracteres, vectores, etc.
Longitud Variable: A diferencia de vectores y matrices, las listas pueden contener un número variable de elementos.
Creación de Listas:
list(): Puedes crear
una lista especificando los elementos que deseas incluir. # Ejemplo: Crear una lista con diferentes tipos de datos
mi_lista <- list(nombre = "Juan", edad = 25, notas = c(90, 85, 92))
# Acceder al componente "nombre"
print(mi_lista$nombre)
## [1] "Juan"
# Acceder al primer componente
print(mi_lista[[1]])
## [1] "Juan"
Operaciones con listas: Puedes realizar diversas operaciones con listas, como añadir, eliminar o combinar componentes.
Anidamiento de Listas: as listas pueden contener otras listas, permitiendo la creación de estructuras de datos complejas.
Ejemplo de creación y operación con una lista en R:
# Crear una lista con diferentes tipos de datos
mi_lista <- list(nombre = "Juan", edad = 25, notas = c(90, 85, 92))
# Mostrar la lista
print(mi_lista)
## $nombre
## [1] "Juan"
##
## $edad
## [1] 25
##
## $notas
## [1] 90 85 92
# Acceder al componente "nombre"
print(mi_lista$nombre)
## [1] "Juan"
# Acceder al primer componente
print(mi_lista[[1]])
## [1] "Juan"
# Añadir un nuevo componente a la lista
mi_lista$ciudad <- "Ciudad A"
print(mi_lista)
## $nombre
## [1] "Juan"
##
## $edad
## [1] 25
##
## $notas
## [1] 90 85 92
##
## $ciudad
## [1] "Ciudad A"
Hasta ahora, la estructura de datos más comúnmente utilizada para almacenar datos es el data frame. Un data frame es un objeto bidimensional potente compuesto por filas y columnas que se asemeja superficialmente a una matriz. Sin embargo, mientras que las matrices están limitadas a contener datos del mismo tipo, los marcos de datos pueden contener una mezcla de diferentes tipos de datos. Por lo general, en un data frame, cada fila corresponde a una observación individual y cada columna corresponde a una variable medida o registrada diferente. Este diseño puede resultar familiar para aquellos que utilizan LibreOffice Calc, Microsoft Excel o Google sheets para gestionar y almacenar sus datos. Quizás una forma útil de pensar en los data frame es que están compuestos esencialmente por un conjunto de vectores (columnas), siendo que cada vector contiene su propio tipo de datos, pero el tipo de datos puede ser diferente entre vectores.
En resumen, un data frame es una estructura de datos bidimensional que se utiliza para organizar y almacenar datos de manera tabular, similar a una hoja de cálculo. Un data frame puede contener una mezcla de diferentes tipos de datos, como numéricos, de caracteres, lógicos, factores y más. Cada columna en un data frame representa una variable, mientras que cada fila corresponde a una observación o entrada específica.
Características clave de los data frames en R:
Bidimensionalidad: Los data frames tienen dos dimensiones, con filas y columnas, lo que permite organizar datos de manera tabular.
Heterogeneidad de Datos: A diferencia de las matrices, los data frames pueden contener diferentes tipos de datos en cada columna.
Etiquetas de Columnas: Las columnas de un data frame pueden tener nombres descriptivos, facilitando el acceso y manipulación de datos.
Creación de Data Frames:
data.frame(): Se pueden
crear data frames combinando vectores de diferentes tipos de datos. # Ejemplo: Crear un data frame simple
mi_data_frame <- data.frame(
Nombre = c("Juan", "María", "Pedro"),
Edad = c(25, 30, 22),
Puntuacion = c(90, 85, 92)
)
# Acceder a la edad de la segunda persona
edad_segunda_persona <- mi_data_frame$Edad[2]
Ejemplo de creación y operación con un data frame en R:
# Crear un data frame simple
mi_data_frame <- data.frame(
Nombre = c("Juan", "María", "Pedro"),
Edad = c(25, 30, 22),
Puntuacion = c(90, 85, 92)
)
# Mostrar el data frame
print(mi_data_frame)
## Nombre Edad Puntuacion
## 1 Juan 25 90
## 2 María 30 85
## 3 Pedro 22 92
# Calcular la media de las puntuaciones
media_puntuacion <- mean(mi_data_frame$Puntuacion)
print(media_puntuacion)
## [1] 89
Existen varios data frames clásicos en R que son comúnmente utilizados para prácticas y ejemplos en análisis de datos. Algunos de ellos están preinstalados en R. Aquí hay algunos ejemplos:
Para ver una lista completa:
data()
dplyrAhora que sabemos algo de lo básico de R, es momento de ponerlo en
acción. Lo ideal es tener nuestros anális ordenados en scripts
separados. Una función clave para mantener orden en nuestros archivos es
setwd(), esta función recibe una cadena de caracteres que
indican la ubicación en nuestra computadora donde queremos estar
trabajando.
# Definir un directorio de trabajo
setwd("Documentos/mis_scripts/")
# Obtener el directorio de trabajo actual
getwd()
Después de definir el directorio de trabajo es recomendable cargar
las librerías a utilizar al inicio del script, en este caso usaremos las
librerías dplyr y gapminder.
dplyr es un paquete en R diseñado para facilitar la
manipulación, filtrado, resumen y transformación de datos de manera
intuitiva y eficiente. Ofrece una sintaxis clara y concisa para realizar
operaciones comunes en conjuntos de datos, lo que facilita la
exploración y análisis de datos.
Las principales funciones y verbos proporcionados por
dplyr incluyen:
filter(): Filtrar filas del
conjunto de datos basándose en condiciones específicas.
select(): Seleccionar columnas
específicas del conjunto de datos.
arrange(): Ordenar el conjunto de
datos basándose en una o más columnas.
mutate(): Crear o modificar
columnas (variables) en el conjunto de datos.
summarise(): Resumir datos para
obtener estadísticas descriptivas.
group_by(): Agrupar el conjunto de
datos por una o más variables para realizar operaciones en
grupos.
join(): Realizar operaciones de
combinación de datos (unión) entre diferentes conjuntos de
datos.
Estos verbos permiten realizar tareas comunes de manipulación de
datos de una manera más expresiva y legible. Además, dplyr
utiliza el operador %>% (pipe) para encadenar
operaciones de manera más fluida, lo que facilita la creación de
secuencias de manipulación de datos.
En resumen, dplyr simplifica y mejora la eficiencia de
las tareas relacionadas con la manipulación y análisis de datos en R,
proporcionando una interfaz más intuitiva y fácil de usar.
Hay que asegurarnos primero de tener instalado los paquetes
dplyr y gapminder
# Instalar paquetes
install.packages("dplyr")
install.packages("gapminder")
Una vez instalados los paquetes los cargamos.
NOTA Sólo es necesario instalar el paquete una vez, a menos de que R nos pida que lo actualicemos
# Cargar librerías
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(gapminder)
Lo siguiente será cargar los datos que queramos analizar. Estos datos los obtendremos del paquete gapminder que acabamos de instalar y cargar. El conjunto de datos Gapminder es un conjunto de datos que contiene información sobre varios indicadores socioeconómicos y de salud para países de todo el mundo a lo largo del tiempo.
El conjunto de datos incluye variables como el Producto Interno Bruto (PIB) per cápita, la expectativa de vida, la población, la tasa de fertilidad y la región a la que pertenece cada país. Estos datos abarcan un período de tiempo significativo y permiten analizar la evolución de diferentes indicadores en diferentes países.
# Guardemos nuestros datos en una variable
datos <- gapminder
# Visualizar las primeras filas del conjunto
head(datos)
## # A tibble: 6 × 6
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Afghanistan Asia 1952 28.8 8425333 779.
## 2 Afghanistan Asia 1957 30.3 9240934 821.
## 3 Afghanistan Asia 1962 32.0 10267083 853.
## 4 Afghanistan Asia 1967 34.0 11537966 836.
## 5 Afghanistan Asia 1972 36.1 13079460 740.
## 6 Afghanistan Asia 1977 38.4 14880372 786.
Otra forma sería con glimpse
glimpse(datos)
## Rows: 1,704
## Columns: 6
## $ country <fct> "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", …
## $ continent <fct> Asia, Asia, Asia, Asia, Asia, Asia, Asia, Asia, Asia, Asia, …
## $ year <int> 1952, 1957, 1962, 1967, 1972, 1977, 1982, 1987, 1992, 1997, …
## $ lifeExp <dbl> 28.801, 30.332, 31.997, 34.020, 36.088, 38.438, 39.854, 40.8…
## $ pop <int> 8425333, 9240934, 10267083, 11537966, 13079460, 14880372, 12…
## $ gdpPercap <dbl> 779.4453, 820.8530, 853.1007, 836.1971, 739.9811, 786.1134, …
A veces no necesitamos trabajar con todas las columnas que tenemos en
nuestros datos, para hacer esto solo necesitamos usar la función
select y darle los nombres de las columnas que
necesitamos.
# Seleccionar solo tres columnas en específico
datos %>% select(country, year, pop)
## # A tibble: 1,704 × 3
## country year pop
## <fct> <int> <int>
## 1 Afghanistan 1952 8425333
## 2 Afghanistan 1957 9240934
## 3 Afghanistan 1962 10267083
## 4 Afghanistan 1967 11537966
## 5 Afghanistan 1972 13079460
## 6 Afghanistan 1977 14880372
## 7 Afghanistan 1982 12881816
## 8 Afghanistan 1987 13867957
## 9 Afghanistan 1992 16317921
## 10 Afghanistan 1997 22227415
## # ℹ 1,694 more rows
También podemos decirle a select las columnas que
no necesitamos usando el prefijo -
# Seleccionar todas las columnas menos continent
datos %>% select(-continent)
## # A tibble: 1,704 × 5
## country year lifeExp pop gdpPercap
## <fct> <int> <dbl> <int> <dbl>
## 1 Afghanistan 1952 28.8 8425333 779.
## 2 Afghanistan 1957 30.3 9240934 821.
## 3 Afghanistan 1962 32.0 10267083 853.
## 4 Afghanistan 1967 34.0 11537966 836.
## 5 Afghanistan 1972 36.1 13079460 740.
## 6 Afghanistan 1977 38.4 14880372 786.
## 7 Afghanistan 1982 39.9 12881816 978.
## 8 Afghanistan 1987 40.8 13867957 852.
## 9 Afghanistan 1992 41.7 16317921 649.
## 10 Afghanistan 1997 41.8 22227415 635.
## # ℹ 1,694 more rows
Filtrar es una de las operaciones más usadas, no siempre toda la
información es relevante en un momento dado. Para hacer eso usaremos la
función filter()
# Filtrar sólo los datos de 2007 para las columnas country, year, lifeExp
datos %>%
select(country, year, lifeExp) %>%
filter(year == 2007)
## # A tibble: 142 × 3
## country year lifeExp
## <fct> <int> <dbl>
## 1 Afghanistan 2007 43.8
## 2 Albania 2007 76.4
## 3 Algeria 2007 72.3
## 4 Angola 2007 42.7
## 5 Argentina 2007 75.3
## 6 Australia 2007 81.2
## 7 Austria 2007 79.8
## 8 Bahrain 2007 75.6
## 9 Bangladesh 2007 64.1
## 10 Belgium 2007 79.4
## # ℹ 132 more rows
También se pueden anidar varias condiciones para la función
filter()
datos %>%
select(country, year, lifeExp) %>%
filter(year == 2007, country == "France")
## # A tibble: 1 × 3
## country year lifeExp
## <fct> <int> <dbl>
## 1 France 2007 80.7
¿Y si queremos de multiples paises? podemos usar el operador
%in% en lugar de la igualdad
datos %>%
select(country, year, lifeExp) %>%
filter(year == 2007, country %in% c("Poland", "Brazil"))
## # A tibble: 2 × 3
## country year lifeExp
## <fct> <int> <dbl>
## 1 Brazil 2007 72.4
## 2 Poland 2007 75.6
A veces queremos ordenar nuestros datos por la información de
columnas específicas, para esto usaremos la función
arrange()
# Filtrar los resultados por esperanza de vida
datos %>%
select(country, year, lifeExp) %>%
filter(year == 2007) %>%
arrange(lifeExp)
## # A tibble: 142 × 3
## country year lifeExp
## <fct> <int> <dbl>
## 1 Swaziland 2007 39.6
## 2 Mozambique 2007 42.1
## 3 Zambia 2007 42.4
## 4 Sierra Leone 2007 42.6
## 5 Lesotho 2007 42.6
## 6 Angola 2007 42.7
## 7 Zimbabwe 2007 43.5
## 8 Afghanistan 2007 43.8
## 9 Central African Republic 2007 44.7
## 10 Liberia 2007 45.7
## # ℹ 132 more rows
Como pueden observar el resultado se ordeno de menor a mayor (de manera ascendiente), si lo queremos de manera descendiente podemos hacer lo siguiente
datos %>%
select(country, year, lifeExp) %>%
filter(year == 2007) %>%
arrange(desc(lifeExp))
## # A tibble: 142 × 3
## country year lifeExp
## <fct> <int> <dbl>
## 1 Japan 2007 82.6
## 2 Hong Kong, China 2007 82.2
## 3 Iceland 2007 81.8
## 4 Switzerland 2007 81.7
## 5 Australia 2007 81.2
## 6 Spain 2007 80.9
## 7 Sweden 2007 80.9
## 8 Israel 2007 80.7
## 9 France 2007 80.7
## 10 Canada 2007 80.7
## # ℹ 132 more rows
A veces sólo quieres que te regrese un número determinado de
resultados, para esto usaremos la función top_n()
datos %>%
select(country, year, lifeExp) %>%
filter(year == 2007) %>%
arrange(desc(lifeExp)) %>%
top_n(5)
## Selecting by lifeExp
## # A tibble: 5 × 3
## country year lifeExp
## <fct> <int> <dbl>
## 1 Japan 2007 82.6
## 2 Hong Kong, China 2007 82.2
## 3 Iceland 2007 81.8
## 4 Switzerland 2007 81.7
## 5 Australia 2007 81.2
Para crear nuevas columnas podemos usar la función
mutate(), más allá de crear nuevas columnas, mutate nos
ayuda a hacer operaciones y guardarlas (en una nueva columna)
Por ejemplo, calcular el PIB (GDP)
datos %>%
select(country, year, pop, gdpPercap) %>%
filter(year == 2007) %>%
mutate(gdp = pop * gdpPercap) %>%
arrange(desc(gdp)) %>%
top_n(5)
## Selecting by gdp
## # A tibble: 5 × 5
## country year pop gdpPercap gdp
## <fct> <int> <int> <dbl> <dbl>
## 1 United States 2007 301139947 42952. 1.29e13
## 2 China 2007 1318683096 4959. 6.54e12
## 3 Japan 2007 127467972 31656. 4.04e12
## 4 India 2007 1110396331 2452. 2.72e12
## 5 Germany 2007 82400996 32170. 2.65e12
Si se necesita realizar un estadístico para una columna podemos usar
la función summarize()
datos %>%
summarize(avgLifeExp = mean(lifeExp))
## # A tibble: 1 × 1
## avgLifeExp
## <dbl>
## 1 59.5
De igual manera que en casos anteriores, podemos encadenar nuestras funciones para obtener resultados muy específicos
datos %>%
filter(year == 2007, continent == "Americas") %>%
summarize(avgLifeExp = mean(lifeExp))
## # A tibble: 1 × 1
## avgLifeExp
## <dbl>
## 1 73.6
Los resumenes estadísticos se vuelven aún más poderosos cuando se
hacen dirigidos a grupos de información. `goup_by() será la
función que nos permitirá hacer grupos.
datos %>%
filter(year == 2007) %>%
group_by(continent) %>%
summarize(avgLifeExp = mean(lifeExp))
## # A tibble: 5 × 2
## continent avgLifeExp
## <fct> <dbl>
## 1 Africa 54.8
## 2 Americas 73.6
## 3 Asia 70.7
## 4 Europe 77.6
## 5 Oceania 80.7