[英]R reduced subsetting a List
我有一個通過名稱對嵌套列表進行分組的問題。 我有一個示例列表,例如:
test_list <- list(a = list(A1 = c(1,2,3), A2 = c(4,5,6)),
b = c(7,8,9),
c = list(C1 = c(10,11,12), C2 = list(C21 =c(13,14,15))))
我想基於像lnames <- c('c','C2','C21')
這樣的向量對值進行子集化。 我可以想到的方式是使用:
exp_str <- paste0('test_list','$',paste0(lnames, collapse = '$'))
eval(parse(text = exp_str))
但這對我來說似乎有點笨拙。 我只是想知道是否有一種功能性的方法,例如使用reduce
函數。
你可以做
test_list[[lnames]]
# [1] 13 14 15
在“ ?Extract
幫助”頁面中對此進行了含糊的描述。
[[
可以遞歸地應用於列表,因此,如果單個索引i
是長度為p
的向量,則alist[[i]]
等效於alist[[i1]]...[[ip]]
但除最終索引將產生一個列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.