如何对 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))
(从技术上讲,数据框是一种列表。)按一组特定的列进行排序,然后提取元素的子集可能会更常规一些。 (虽然我也很喜欢这里接受的答案。)
我正在尝试对 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))
(从技术上讲,数据框是一种列表。)按一组特定的列进行排序,然后提取元素的子集可能会更常规一些。 (虽然我也很喜欢这里接受的答案。)