我正在使用 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)
有没有办法选择列表中向量的所有最后一个元素?