在R中按键排序列表

S4M*_*S4M 5 sorting r key list

我有以下列表:

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))
Run Code Online (Sandbox Code Playgroud)

我想按照标准"x"对这个列表中的元素进行排序.我不知道该怎么做.任何帮助将不胜感激.

Sve*_*ein 8

myList[order(sapply(myList, "[[", "x"))]
Run Code Online (Sandbox Code Playgroud)

会做的

[[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
Run Code Online (Sandbox Code Playgroud)

  • @MatthewPlourde这也可以用`sapply(myList,get,x ='x')`来完成. (3认同)
  • 我怀疑调用`[[`更快,但你也可以使用稍微不那么奇怪的`mapply(get,'x',myList)`. (2认同)