子集嵌套列表仅包含向量中命名的元素
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])
我有一个嵌套列表:
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])