2012-12-17 81 views
5

排序列表的名單上有以下列表:通過鍵R中

myList <- list(list(a = 1,b = 1:5,x = 2), 
       list(a = 7,b = 9.1,x = 3), 
       list(a=-1, b = 0.2, x = 1)) 

而且我想通過標準的「X」來我在這個列表中的元素進行排序。 我在如何做到這一點上的損失。任何幫助將不勝感激。

回答

8
myList[order(sapply(myList, "[[", "x"))] 

會做的伎倆

[[1]] 
[[1]]$a 
[1] -1 

[[1]]$b 
[1] 0.2 

[[1]]$x 
[1] 1 


[[2]] 
[[2]]$a 
[1] 1 

[[2]]$b 
[1] 1 2 3 4 5 

[[2]]$x 
[1] 2 


[[3]] 
[[3]]$a 
[1] 7 

[[3]]$b 
[1] 9.1 

[[3]]$x 
[1] 3 
+0

感謝斯文,它完美的作品!我不知道那個竅門(myList,「[[」,「x」) – S4M

+2

我懷疑調用'[['更快,但你也可以使用稍微不太奇怪的'mapply(get,'x' myList中)'。 –

+3

@MatthewPlourde這也可以用'sapply(myList,get,x ='x')'完成。 –