簡體   English   中英

R減少了對列表的子集

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM