我试图获取R中列表的每个子元素的最后一个元素的值.列表的元素是不同长度的向量,因此最后一个子元素的索引在列表的元素之间不是恒定的.我搜索了SO,但只找到了那些想要获得的信息,例如,每个元素的第二个子元素.这对我没有帮助,因为列表的元素是非常长的.
我只对不涉及使用for循环的解决方案感兴趣,因为我的列表长度> 100万.
谢谢!
你可以使用lapply和tail:
x <- list(a=1:5, b = 1:10, d = 9:11)
last_elems <- lapply(x, tail, n = 1L)
Run Code Online (Sandbox Code Playgroud)
正如Hadd E. Nuff所指出的,获取数字向量而不是单元素列表vapply是一个不错的选择:
last_elems <- vapply(x, tail, n = 1L, FUN.VALUE = numeric(1))
Run Code Online (Sandbox Code Playgroud)