簡體   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