按相应子列表的长度对嵌套列表进行排序

时间:2014-05-17 22:16:01

标签: r list

如何按子列表的长度对嵌套列表进行排序:

l <- list(list("a","b","c"), list("d","e"), list("f"))

使用它应该回馈:

list(list("f"), list("d","e"), list("a","b","c"))

1 个答案:

答案 0 :(得分:2)

我会用

l[order(sapply(l, length))]

@Arun评论中给出的解决方案

l[order(vapply(l, length, 1L))]

可以通过告诉R长度函数返回的所有内容都是一个整数来提供一些性能优势:“对于vapply,你基本上给R一个你的函数将返回什么样的东西的例子,这可以节省一些时间强制返回值适合单个原子向量。“参见:

R Grouping functions: sapply vs. lapply vs. apply. vs. tapply vs. by vs. aggregate