子集嵌套列表仅包含向量中命名的元素

Subset nested list to only include element named in a vector

我有一个嵌套列表:

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)))

在此列表中,我只想保留一些元素。那些应该保留的元素存储在一个名为 toBeSubset

的向量中
toBeSubset <- c("element 1", "element 3")

我表示:

names(myList$elements) %in% toBeSubset

但我被困在这里了。有什么建议吗?

期望的输出:

myListSubset <- list(info = "list", 
               elements = list("element 1" = list(cost = 7, distance = 11, quality = 3),
                               "element 3" = list(cost = 22, distance = 11, quality = 9)))

你可以这样做:

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

我们也可以

c(myList[1], myList[["elements"]][names(myList[["elements"]]) %in% toBeSubset])