3

我正在使用 lapply 从列表中的向量中选择元素,但并非列表中的所有向量都包含相同数量的元素。我通常使用:

lapply(some.list,"[[",n)

是 n 是我要解析的向量中元素的索引。但是,这次我的列表看起来更像这样:

some.vect <- c("aaa_elem1","aa_elem2","elem3","bb_elem4","ccc_elem5","abc_elem6")
some.list <- strsplit(some.vect,"_")

当我使用正常的 lapply 方法时:

lapply(some.list,"[[",2)

我收到以下错误:Error in FUN(X[[3L]], ...) : subscript out of bounds正如预期的那样,因为并非列表中的所有向量都有两个元素。我想要的是一种将索引声明lapply为向量长度的方法。

我还尝试定义列表向量长度的向量,并将其分配给索引:

vect.length <- unlist(lapply(some.list,length))
lapply(some.list,"[[",vect.length)
(Error in FUN(X[[1L]], ...) : attempt to select more than one element)

并且根本不分配索引:

lapply(some.list,"[[")
(Error in FUN(X[[1L]], ...) : no index specified)

有没有办法选择列表中向量的所有最后一个元素?

4

1 回答 1

3

使用tail...

lapply(some.list, tail , 1 )
于 2013-06-12T14:30:18.150 回答