How can I remove an element from a list?

If you don’t want to modify the list in-place (e.g. for passing the list with an element removed to a function), you can use indexing: negative indices mean “don’t include this element”.

x <- list("a", "b", "c", "d", "e"); # example list

x[-2];       # without 2nd element

x[-c(2, 3)]; # without 2nd and 3rd

Also, logical index vectors are useful:

x[x != "b"]; # without elements that are "b"

This works with dataframes, too:

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

Leave a Comment