在R中按键排序列表的列表

5

我有以下列表:

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”标准对列表中的元素进行排序。我不知道该怎么做。非常感谢您的帮助。

1个回答

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

谢谢Sven,它完美地运行了!我不知道那个技巧sapply(myList,"[[","x")。 - S4M
2
我怀疑调用[[会更快,但你也可以使用稍微不那么奇怪的mapply(get,'x',myList) - Matthew Plourde
3
这也可以用sapply(myList, get, x = 'x')来完成。 - Sven Hohenstein

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接