按特定顺序R对稀疏矩阵中的列进行排序

时间:2018-07-09 16:36:24

标签: r sparse-matrix

我有一个大的稀疏矩阵m,其中的行是基因,列是条形码,我想按特定顺序对列进行排序。

> m = matrix(c(2,3,3,1,0,7), nrow=2, ncol=3)
> dimnames(m) = list(c("gene1", "gene2"), c("A-1", "B-1", "C-2"))
> m
      A-1 B-1 C-2
gene1   2   3   0
gene2   3   1   7
> 

我有另一个数据框,其中第一列包含所有条形码的排序顺序。

> colnames(df) <- c('Barcode', "Cluster")
> df
  Barcode Cluster
1     B-1       9
2     C-2       1
3     A-1       14
> 

如何对稀疏矩阵m进行排序,以便得到它?

> m
      B-1 C-2 A-1
gene1   3   0   2
gene2   1   7   3

1 个答案:

答案 0 :(得分:0)

假设df $ Barcode是'character'类,则可以执行以下操作:

m <-m [,df $ Barcode]

例如这适用于您的示例:

m <-m [,c(“ B-1”,“ C-2”,“ A-1”)]

> m
      B-1 C-2 A-1
gene1   3   0   2
gene2   1   7   3