我有large array of 150000 elements
structure(c(0.297737591051841, 0.29315072190034, 0.300524437089258,
0.297581868890772, 0.29315252160195, 0.30052371791622, 0.297447088491222,
0.293154289987493, 0.300522998984405, 0.297331962830338), .Dim = 10L)
我有一个索引列表:
List of 3
int[1:8784(1d)] 1 4 7 10 13
num[1:8784(1d)] 2 5 8 11 14
num[1:8784(1d)] 3 6 9 12 15
如何根据列表对数组进行子集化?
到目前为止,我在制作列表之前使用索引逐一进行此操作:
data.frame(array[list1], array[list2], array[list3])
更聪明的方法是什么?
答案 0 :(得分:2)
我们可以做到
as.data.frame(sapply(lst, function(x) ar1[x]))
或Map
data.frame(Map(`[`, list(ar1), lst))
修改:从mapply
更改为Map
(基于@ thelatemail的评论)