x
是一个数据框。
> x
TCGA-05-4244-01A-01D-1105-08
TGTT 1
TGTG 2
TGCG 2
TGGA 1
TCCG 1
TCAG 2
如何根据数字数组重新排列x
。如
match <- c(1, 3, 2, 6, 5, 4)
x
的结果应为
> x
TCGA-05-4244-01A-01D-1105-08
TGTT 1
TGCG 2
TGTG 2
TCAG 2
TCCG 1
TGGA 1
我使用了x <- x[match,]
,但它没有用。
答案 0 :(得分:1)
我相信你正在处理&#34; drop&#34;问题。当R读取只有一列的矩阵时,第二维(列)会被删除。&#34;这可以通过添加一个简单的&#34; drop = FALSE&#34;来解决。尺寸之后的论证。
Object[Row,Column, drop = FALSE]
因此,对于您的数据集,您可能正在寻找:
x <- matrix(c(1,2,2,1,1,2))
dimnames(x) <- list(c("TGTT", "TGTG", "TGCG", "TGGA", "TCCG", "TCAG"), "TCGA-05-4244-01A-01D-1105-08")
match <- c(1,3,2,6,5,4)
x[match,,drop = F]
TCGA-05-4244-01A-01D-1105-08
TGTT 1
TGCG 2
TGTG 2
TCAG 2
TCCG 1
TGGA 1
答案 1 :(得分:0)
columnname <- colnames(x)
x <- as.data.frame(x[match,])
colnames(x) <- column_name
我可以使用其他一些信息通过rownames
订单获取match
并重命名x
。
你们有什么简单而好的想法吗?