我有一个包含向量集合的列表和第二个列表(长度相同)的索引。我想使用第二个列表仅提取第一个列表的索引元素。
dataList <- list(1:10, 101:150, LETTERS)
indexList <- list(3:5, 10:15, c(1,5,9,15,21))
即。我想要一个函数来返回一个与dataList长度相同的新列表,但只包含indexList索引的成员。
答案 0 :(得分:1)
我们可以使用Map
根据&#39; indexList&#39;
list
元素
Map(`[`, dataList, indexList)
或使用map2
purrr
library(purrr)
map2(dataList, indexList, `[`)
答案 1 :(得分:1)
使用lapply()
dataList <- list(1:10, 101:150, LETTERS)
indexList <- list(3:5, 10:15, c(1,5,9,15,21))
lapply(1:length(dataList), FUN=function(x, list1, list2) list1[[x]][list2[[x]]] , list1=dataList, list2=indexList)
给出了: -
[[1]]
[1] 3 4 5
[[2]]
[1] 110 111 112 113 114 115
[[3]]
[1] "A" "E" "I" "O" "U"