Reputation: 1860
i have a nested list :
myList <- list(info = "list",
elements = list("element 1" = list(cost = 7, distance = 11, quality = 3),
"element 2" = list(cost = 7, distance = 13, quality = 3),
"element 3" = list(cost = 22, distance = 11, quality = 9)))
from this list i want to keep only some elements. Those elements that should be kept are stored in a vector called toBeSubset
toBeSubset <- c("element 1", "element 3")
i stated with:
names(myList$elements) %in% toBeSubset
but i am stuck here. Any tips?
desired output:
myListSubset <- list(info = "list",
elements = list("element 1" = list(cost = 7, distance = 11, quality = 3),
"element 3" = list(cost = 22, distance = 11, quality = 9)))
Upvotes: 2
Views: 150
Reputation: 887501
We could also do
c(myList[1], myList[["elements"]][names(myList[["elements"]]) %in% toBeSubset])
Upvotes: 2
Reputation: 389115
You can do :
c(myList[1], myList$elements[names(myList$elements) %in% toBeSubset])
#$info
#[1] "list"
#$`element 1`
#$`element 1`$cost
#[1] 7
#$`element 1`$distance
#[1] 11
#$`element 1`$quality
#[1] 3
#$`element 3`
#$`element 3`$cost
#[1] 22
#$`element 3`$distance
#[1] 11
#$`element 3`$quality
#[1] 9
Upvotes: 1