375
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
Here is how the remove the last element of a list in R:
x <- list("a", "b", "c", "d", "e")
x[length(x)] <- NULL
If x might be a vector then you would need to create a new object:
x <- c("a", "b", "c", "d", "e")
x <- x[-length(x)]