【发布时间】:2012-12-04 11:48:33
【问题描述】:
我有以下列表:
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”对列表中的元素进行排序。 我不知道该怎么做。任何帮助将不胜感激。
【问题讨论】:
我有以下列表:
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”对列表中的元素进行排序。 我不知道该怎么做。任何帮助将不胜感激。
【问题讨论】:
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
【讨论】:
[[ 更快,但你也可以使用看起来不那么奇怪的mapply(get, 'x', myList)。
sapply(myList, get, x = 'x') 完成。