从子列表中获取不同长度的尾部

时间:2017-07-31 15:42:35

标签: r list tail

我的问题是我有一个包含子列表的列表,我想获取每个子列表的尾部,但这些应该有不同的大小。

例如,我希望得到子列表 a 的长度n = 10的尾部,子列表 b 的长度n = 5的尾部(见下面的代码)。如何最好地做到这一点?

myList< - list(list(a = replicate(10,rnorm(20)),b = replicate(10,rnorm(10))))

3 个答案:

答案 0 :(得分:0)

这样的事情:

myTail <- c(10, 5)
lapply(1:length(myTail), function(x) tail(unlist(myList[[1]][x]), myTail[x]))

答案 1 :(得分:0)

我更改了列表创建查询。请看看。

myList <- list(a=replicate(10, rnorm(20)), b=replicate(10, rnorm(10)))
lapply(myList, tail, 1)

答案 2 :(得分:0)

我环顾四周,使用包purrr找到了这个解决方案

库(purrr)

myList&lt; - list(a = replicate(10,rnorm(20)),b = replicate(10,rnorm(10)))

Tail&lt; - list(10,5)

MyTail&lt; - map2(myList,Tail,tail

感谢您的建议!