Aplicar recursivamente una función a una lista en programación R – función rapply()

rapply()La función en R Language se usa para aplicar recursivamente una función a una lista.

Sintaxis:
rapply(objeto, f, clases = “CUALQUIERA”, deflt = NULL, cómo = c(“deslistar”, “reemplazar”, “listar”))

Parámetros:

objeto: representa una lista o una expresión
f: representa la función que se aplicará recursivamente
clases: representa el nombre de la clase del vector o «CUALQUIER» para que coincida con cualquiera de la clase
deflt: representa el resultado predeterminado cuando cómo no es «reemplazar»
cómo: representa los modos

Los modos en rapply()función son de 2 tipos básicos. Si how = “replace” , cada elemento del objeto de la lista que no es en sí mismo es una lista y tiene una clase incluida en las clases, entonces cada elemento de la lista se reemplaza por el valor resultante de la función f aplicada al elemento.

Si how = «list» o how = «unlist» , el objeto de la lista se copia y todos los elementos que no son de la lista que se incluyen en las clases se reemplazan por el valor resultante de la función f aplicada al elemento y todos los demás se reemplazan por deflt .

Ejemplo 1: Uso del modo de reemplazo

# Defining a list
ls <- list(a = 1:5, b = 100:110, c = c('a', 'b', 'c'))
  
# Print whole list
cat("Whole List: \n")
print(ls)
  
# Using replace mode
cat("Using replace mode:\n")
rapply(ls, mean, how = "replace", classes = "integer")

Producción:

Whole List:
$a
[1] 1 2 3 4 5

$b
 [1] 100 101 102 103 104 105 106 107 108 109 110

$c
[1] "a" "b" "c"

Using replace mode:
$a
[1] 3

$b
[1] 105

$c
[1] "a" "b" "c"

Ejemplo 2: Uso del modo de lista

# Defining a list
ls <- list(a = 1:5, b = 100:110, c = c('a', 'b', 'c'))
  
# Print whole list
cat("Whole List: \n")
print(ls)
  
# Using list mode
cat("Using list mode:\n")
rapply(ls, mean, how = "list", classes = "integer")

Producción:

Whole List: 
$a
[1] 1 2 3 4 5

$b
 [1] 100 101 102 103 104 105 106 107 108 109 110

$c
[1] "a" "b" "c"

Using list mode:
$a
[1] 3

$b
[1] 105

$c
NULL

Ejemplo 3: Uso del modo de deslistar

# Defining a list
ls <- list(a = 1:5, b = 100:110, c = c('a', 'b', 'c'))
  
# Print whole list
cat("Whole List: \n")
print(ls)
  
# Using unlist mode
cat("Using unlist mode:\n")
rapply(ls, mean, how = "unlist", classes = "integer")

Producción:

Whole List:
$a
[1] 1 2 3 4 5

$b
 [1] 100 101 102 103 104 105 106 107 108 109 110

$c
[1] "a" "b" "c"

Using unlist mode:
  a   b 
  3 105

Publicación traducida automáticamente

Artículo escrito por utkarsh_kumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *