以特定顺序 R 对稀疏矩阵中的列进行排序
Sorting columns in a sparse matrix with specific order R
我有一个很大的稀疏矩阵 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
假设 df$Barcode 是 'character' class 您可以执行以下操作:
m <- m[df$条码]
例如这适用于您的示例:
m <- m[c("B-1","C-2","A-1")]
> m
B-1 C-2 A-1
gene1 3 0 2
gene2 1 7 3
我有一个很大的稀疏矩阵 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
假设 df$Barcode 是 'character' class 您可以执行以下操作:
m <- m[df$条码]
例如这适用于您的示例:
m <- m[c("B-1","C-2","A-1")]
> m
B-1 C-2 A-1
gene1 3 0 2
gene2 1 7 3