【问题标题】:R sorting string by index stringR按索引字符串排序字符串
【发布时间】:2014-07-02 00:46:26
【问题描述】:

我想按字符串索引对矩阵进行排序

例如

矩阵是
myMat =
      [,1]           [,2]
[1,] 苹果         1
[2,] 香蕉      3
[3,] 梨           4
[4,] 黑莓 5

索引字符串是
我的身份 =
[1,]香蕉
[2,]梨
[3,]苹果
[4,]黑莓

结果必须是
myResult=

      [,1]           [,2]
[1,] 香蕉      3
[2,] 梨           4
[3,] 苹果         1
[4,] 黑莓 5

我怎样才能这样排序?谢谢

【问题讨论】:

    标签: string r sorting indexing


    【解决方案1】:

    使用data.table 包你可以很容易地做到这一点

    myMat <- data.frame(fruit = c("apple", "banana", "pear", "blackberry"), num = c(1, 3, 4, 5))
    myIdx <- c("banana", "pear", "apple", "blackberry")
    
    require(data.table)
    myMat <- data.table(myMat)
    myMat
    ##         fruit num
    ## 1:      apple   1
    ## 2:     banana   3
    ## 3:       pear   4
    ## 4: blackberry   5
    
    setkey(myMat, fruit)
    myMat[J(myIdx)]
    
    ##         fruit num
    ## 1:     banana   3
    ## 2:       pear   4
    ## 3:      apple   1
    ## 4: blackberry   5
    

    【讨论】:

    • 谢谢。我试图安装 data.table 包。但无法读取包。我做了“install.packages(“data.table”)”然后是“require(data.table)”。它显示“正在加载所需的包:data.table 警告消息:在库中(包,lib.loc = lib.loc,character.only = TRUE,logical.return = TRUE,:没有名为 'data.table' 的包”消息。我做错了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-22
    • 1970-01-01
    相关资源
    最近更新 更多