【问题标题】:Sorting a list of list by key in R在R中按键对列表进行排序
【发布时间】: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”对列表中的元素进行排序。 我不知道该怎么做。任何帮助将不胜感激。

【问题讨论】:

    标签: r list sorting key


    【解决方案1】:
    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")
    • 我怀疑调用[[ 更快,但你也可以使用看起来不那么奇怪的mapply(get, 'x', myList)
    • @MatthewPlourde 这也可以通过sapply(myList, get, x = 'x') 完成。
    猜你喜欢
    • 1970-01-01
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 2021-12-23
    • 1970-01-01
    • 2014-08-03
    • 2020-12-25
    相关资源
    最近更新 更多