Una guía para aplicar (), lapply (), sapply () y tapply () en R

Este tutorial explica las diferencias entre las funciones integradas de R apply () , sapply () , lapply () y tapply () junto con ejemplos de cuándo y cómo usar cada función.

solicitar()

Utilice la función apply () cuando desee aplicar una función a las filas o columnas de una matriz o marco de datos.

La sintaxis básica de la función apply () es la siguiente:

aplicar (X, MARGIN, FUN)

  • X es el nombre de la matriz o marco de datos
  • MARGEN indica en qué dimensión realizar una operación (1 = fila, 2 = columna)
  • DIVERSIÓN es la operación específica que desea realizar (por ejemplo, mínimo, máximo, suma, media, etc.)

El siguiente código ilustra varios ejemplos de apply () en acción.

#crea un marco de datos con tres columnas y cinco filas
data <- data.frame (a = c (1, 3, 7, 12, 9),
                   b = c (4, 4, 6, 7, 8),
                   c = c (14, 15, 11, 10, 6))
datos

# a B C
# 1 1 4 14
# 2 3 4 15
# 3 7 6 11
# 4 12 7 10
# 5 9 8 6

# encontrar la suma de cada fila
aplicar (datos, 1, suma)

# [1] 19 22 24 29 23

# encontrar la suma de cada columna
aplicar (datos, 2, suma)

# a B C 
# 32 29 56 

# encontrar la media de cada fila
aplicar (datos, 1, media)

# [1] 6.333333 7.333333 8.000000 9.666667 7.666667

# encontrar la media de cada columna, redondeada a un decimal
redondo (aplicar (datos, 2, media), 1)

# a B C 
# 6,4 5,8 11,2 

# encontrar la desviación estándar de cada fila
aplicar (datos, 1, sd)

# [1] 6.806859 6.658328 2.645751 2.516611 1.527525

# encontrar la desviación estándar de cada columna
aplicar (datos, 2, sd)

# a B C 
# 4.449719 1.788854 3.563706 

lapply ()

Utilice la función lapply () cuando desee aplicar una función a cada elemento de una lista, vector o marco de datos y obtener una lista como resultado.

La sintaxis básica de la función lapply () es la siguiente:

lapply (X, FUN)

  • X es el nombre de la lista, vector o marco de datos
  • DIVERSIÓN es la operación específica que desea realizar

El siguiente código ilustra varios ejemplos del uso de lapply () en las columnas de un marco de datos.

#crear un marco de datos con tres columnas y cinco filas
 data <- data.frame (a = c (1, 3, 7, 12, 9),
                   b = c (4, 4, 6, 7, 8),
                   c = c (14, 15, 11, 10, 6))
datos

# a B C
# 1 1 4 14
# 2 3 4 15
# 3 7 6 11
# 4 12 7 10
# 5 9 8 6

# encontrar la media de cada columna y devolver los resultados como una lista
lapply (datos, media)

# $ a
# [1] 6,4
#
# $ b
# [1] 5.8
#
# $ c
# [1] 11,2

#multiplica los valores de cada columna por 2 y devuelve los resultados como una lista
lapply (datos, función (datos) datos * 2)

# $ a
# [1] 2 6 14 24 18
#
# $ b
# [1] 8 8 12 14 16
#
# $ c
# [1] 28 30 22 20 12

También podemos usar lapply () para realizar operaciones en listas. Los siguientes ejemplos muestran cómo hacerlo.

#crear una lista x <- lista (a = 1, b = 1: 5, c = 1:10
 )
X

# $ a
# [1] 1
#
# $ b
# [1] 1 2 3 4 5
#
# $ c
# [1] 1 2 3 4 5 6 7 8 9 10

# encontrar la suma de cada elemento en la lista
lapply (x, suma)

# $ a
# [1] 1
#
# $ b
# [1] 15
#
# $ c
# [1] 55

# encontrar la media de cada elemento en la lista
lapply (x, mean)

# $ a
# [1] 1
#
# $ b
# [1] 3
#
# $ c
# [1] 5.5

#multiplica los valores de cada elemento por 5 y devuelve los resultados como una lista
lapply (x, función (x) x * 5)

# $ a
# [15
#
# $ b
# [1] 5 10 15 20 25
#
# $ c
# [1] 5 10 15 20 25 30 35 40 45 50

sapply ()

Utilice la función sapply () cuando desee aplicar una función a cada elemento de una lista, vector o marco de datos y obtener un vector en lugar de una lista como resultado.

La sintaxis básica de la función sapply () es la siguiente:

sapply (X, DIVERSIÓN)

  • X es el nombre de la lista, vector o marco de datos
  • DIVERSIÓN es la operación específica que desea realizar

El siguiente código ilustra varios ejemplos del uso de sapply () en las columnas de un marco de datos.

#crear un marco de datos con tres columnas y cinco filas
 data <- data.frame (a = c (1, 3, 7, 12, 9),
                   b = c (4, 4, 6, 7, 8),
                   c = c (14, 15, 11, 10, 6))
datos

# a B C
# 1 1 4 14
# 2 3 4 15
# 3 7 6 11
# 4 12 7 10
# 5 9 8 6

# encontrar la media de cada columna y devolver los resultados como una aplicación vectorial
 (datos, media)

# a B C 
# 6,4 5,8 11,2 

#multiplica los valores en cada columna por 2 y devuelve los resultados como una matriz
 sapply (datos, función (datos) datos * 2)

# a B C
# [1,] 2 8 28
# [2,] 6 8 30
# [3,] 14 12 22
# [4,] 24 14 20
# [5,] 18 16 12

También podemos usar sapply () para realizar operaciones en listas. Los siguientes ejemplos muestran cómo hacerlo.

#crear una lista x <- lista (a = 1, b = 1: 5, c = 1:10
 )
X

# $ a
# [1] 1
#
# $ b
# [1] 1 2 3 4 5
#
# $ c
# [1] 1 2 3 4 5 6 7 8 9 10

# encontrar la suma de cada elemento en la lista
sapply (x, suma)

# a B C 
# 1 15 55 

# encontrar la media de cada elemento en la lista
sapply (x, mean)

# a B C 
# 1.0 3.0 5.5

tapply ()

Utilice la función tapply () cuando desee aplicar una función a subconjuntos de un vector y los subconjuntos están definidos por algún otro vector, generalmente un factor.

La sintaxis básica de la función tapply () es la siguiente:

toque (X, ÍNDICE, DIVERSIÓN)

  • X es el nombre del objeto, típicamente un vector
  • ÍNDICE es una lista de uno o más factores
  • DIVERSIÓN es la operación específica que desea realizar

El siguiente código ilustra un ejemplo del uso de tapply () en el iris del conjunto de datos R incorporado .

#ver las primeras seis líneas del conjunto de datos de iris
cabeza (iris)

# Sepal.Length Sepal.Width Petal.Length Petal.Width 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

#Encuentre la máxima longitud de sépalo de cada una de las tres especies
tapply (iris $ Sepal.Length, iris $ Species, máx.)

#setosa versicolor virginica 
# 5,8 7,0 7,9 

# encontrar la media Sepal.Width de cada una de las tres especies
 tapply (iris $ Sepal.Width, iris $ Species, media)

# setosa versicolor virginica 
# 3.428 2.770 2.974

#encuentre el mínimo de Petal.Width de cada una de las tres Especies
 tapply (iris $ Petal.Width, iris $ Species, min)

# setosa versicolor virginica 
# 0,1 1,0 1,4 
  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

A menudo, es posible que desee convertir una fecha y hora en una fecha en pandas. Afortunadamente, esto es fácil…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!