【问题标题】:Sorting Large R Matrix by Column with Vector用向量按列对大型 R 矩阵进行排序
【发布时间】:2017-07-14 15:10:40
【问题描述】:

我有一个大的 R 矩阵,我想按一列对所有数据进行排序,但该列需要以一种奇怪的方式排序(即不升序或降序)。这是一个例子:

test=matrix(data=c("A","B","C","D","E","E","F","F","F",1,2,2,3,4,5,6,6,6),ncol=2)
> test
      [,1] [,2]
 [1,] "A"  "1" 
 [2,] "B"  "2" 
 [3,] "C"  "2" 
 [4,] "D"  "3" 
 [5,] "E"  "4" 
 [6,] "E"  "5" 
 [7,] "F"  "6" 
 [8,] "F"  "6" 
 [9,] "F"  "6" 

现在我需要使用向量按第 2 列对矩阵进行排序:

x=c(3,4,5,6,1,2)

我知道我需要使用 order 函数,因为我也希望以正确的顺序保留其他列中的数据。

【问题讨论】:

  • “大”有多大?

标签: r sorting matrix


【解决方案1】:

不确定我的问题是否正确,但您可以尝试:

test[order(match(test[,2],x)),]      
#     [,1] [,2]
# [1,] "D"  "3" 
# [2,] "E"  "4" 
# [3,] "E"  "5" 
# [4,] "F"  "6" 
# [5,] "F"  "6" 
# [6,] "F"  "6" 
# [7,] "A"  "1" 
# [8,] "B"  "2" 
# [9,] "C"  "2" 

【讨论】:

  • 优秀的答案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多