¿Cómo puedo eliminar un elemento de una lista?
Tengo una lista y quiero eliminar un solo elemento de ella. ¿Cómo puedo hacer esto?
Intenté buscar cuáles creo que serían los nombres obvios para esta función en el manual de referencia y no encontré nada apropiado.
Si no desea modificar la lista in situ (por ejemplo, para pasar la lista con un elemento eliminado a una función), puede utilizar la indexación: los índices negativos significan "no incluir este elemento".
x <- list("a", "b", "c", "d", "e") # example list
x[-2] # without 2nd element
x[-c(2, 3)] # without 2nd and 3rd
Además, los vectores de índice lógico son útiles:
x[x != "b"] # without elements that are "b"
Esto también funciona con marcos de datos:
df <- data.frame(number = 1:5, name = letters[1:5])
df[df$name != "b", ] # rows without "b"
df[df$number %% 2 == 1, ] # rows with odd numbers only
No conozco R en absoluto, pero una búsqueda creativa en Google me llevó hasta aquí: http://tolstoy.newcastle.edu.au/R/help/05/04/1919.html
La cita clave de allí:
No encuentro documentación explícita para R sobre cómo eliminar elementos de las listas, pero la prueba y error me lo dice.
miLista[[5]] <- NULL
eliminará el quinto elemento y luego "cerrará" el agujero causado por la eliminación de ese elemento. Eso afecta los valores del índice, por lo que debo tener cuidado al eliminar elementos. Debo trabajar desde el final de la lista hacia el frente.
Una respuesta a esa publicación más adelante en el hilo dice:
Para eliminar un elemento de una lista, consulte la pregunta frecuente de R 7.1.
Y la sección correspondiente de las preguntas frecuentes de R dice:
... No establezca x[i] o x[[i]] en NULL, porque esto eliminará el componente correspondiente de la lista.
Lo que parece indicarle (de forma un tanto al revés) cómo eliminar un elemento.