繁体   English   中英

如何对R中的列表进行排序?

[英]How to sort a list of lists in R?

我试图在R中对列表进行排序。每个子列表包含一个整数和一个字符串。 我的目标是对列表进行排序,以便最终列表按整数按升序排序。 下面是我想要完成的一个例子:

a <- list(-5,"help")
b <- list(3, "stack")
c <- list(1, "me")
d <- list(10, "overflow")

list.of.lists <- list(a,b,c,d)
magic.sort(list.of.lists)
# Below is not exactly how it would be displayed, but should be understandable
-5, "help"
1, "me"
3, "stack"
10, "overflow"

在R中有一个很好的方法来实现这个结果吗? 理想情况下,结果也应作为列表列表返回。

尝试这个:

list.of.lists[order(sapply(list.of.lists,'[[',1))]

您的list.of.lists中有很多结构。 根据您需要执行的其他处理,您可能希望将其设置为二维列表,如下所示:

list.2d <- sapply(list.of.lists, cbind)

并且,可能从那里进入这样的数据框:

df <- data.frame(t(list.2d))

(从技术上讲,数据框是一种列表。)按一组特定列进行排序,然后提取元素子集可以更传统一些。 (虽然我也非常喜欢这里接受的答案。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM